原创 linux 編譯配置 make menuconfig依賴的庫

linux 編譯配置 make menuconfig依賴的庫: sudo apt-get install build-essential  sudo apt-get install libncurses5  sudo apt-get in

原创 linux 下模擬/sys/class/gpio 編寫自己的動態創建節點的驅動demo程序

在/sys/class/下生成hwconfig節點 創建節點                 echo xxx  >  configexport 然後會在sys/class/hwconfig節點下生成xxx節點 xxx節點下有value節

原创 添加虛擬的i2c設備適配器(add virtual i2c adapter)

應用場景:在i2c從設備下再掛i2c從設備的情況,並且它們之間有可能存在斷開鏈接。 目前車載視頻傳輸多使用gmsl,gmsl2,FDP3.0協議進行傳輸,它們之間通過串行器和解串器進行連接。 所以在加載近端IC驅動後,要檢測是否和遠端IC

原创 asynchronous external abort 解決辦法

static bool ignore_first = true; static int xxxx_async_ext_abort_fault(unsigned long addr, unsigned int fsr, struct pt

原创 video input capture一張圖片 demo程序

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> #include <getopt.h> #include <fcntl.h

原创 Linux 內核模塊編譯 Makefile 解析

一、模塊的編譯        我們在前面內核編譯中驅動移植那塊,講到驅動編譯分爲靜態編譯和動態編譯;靜態編譯即爲將驅動直接編譯進內核,動態編譯即爲將驅動編譯成模塊。 而動態編譯又分爲兩種: a -- 內部編譯        在內核源碼目錄

原创 linux下查看應用屬性(屬於PC端運行還是屬於ARM端運行)

文件名:xxx file xxx 或者fileinfo xxx   # file sysfs_test sysfs_test: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV)

原创 使用git merge/cherry-pick合併代碼

git 合併 1. git合併兩個倉庫代碼(主倉庫合併到分支倉庫) 2.將某分支的某次提交合併到另一個分支 3. 將遠程倉庫的某次/幾次提交合併到另一個倉庫   1. git合併兩個倉庫代碼(主倉庫合併到分支倉庫) 主倉庫:opsy:ma

原创 linux內核模塊編譯,多個源文件的makefile編寫解決init_module不調用的問題

當你存在兩個源文件test.c  test2.c test.h;其中test.c源依賴於test2.c 要如何編寫makefile,來實現內核模塊test.ko的編譯,並且不會有不調用init_module入口函數的問題。 Kbuild的

原创 linux kernel Kbuild 編譯系統分析

       從Linux內核2.6開始,Linux內核的編譯採用Kbuild系統,這同過去的編譯系統有很大的不同,尤其對於Linux內核模塊的編譯。在新的系統下,Linux編譯系統會兩次掃描Linux的Makefile:首先編譯系統會讀

原创 poll 監聽/sys/class/xxx下節點的兩種實現方式

方式一: lseek到09 方式二:reopen節點操作.(這個一定要注意在第一次open需要對它做一次dummy讀操作)   app 代碼如下 #include <stdio.h> #include <sys/types.h> #in

原创 最簡單的Makefile編寫

person:main.o person.o g++ -o $@ $^ %.o:%.cpp g++ -c -o $@ $< clean: rm -rf *.o person Makefile基本語法: 目標:依賴 注意:在目

原创 使用git命令打補丁

一、 patch 和diff 的區別 Git 提供了兩種補丁方案,一是用git diff生成的UNIX標準補丁.diff文件,二是git format-patch生成的Git專用.patch 文件。 .diff文件只是記錄文件改變的內容,

原创 dts設備樹詳解之設備樹規範

dts文件佈局(layout): /dts-v1/;        // 第一行表示這個dts文件的版本 [memory reservations]    // 格式爲:/memreserve/ <address> <length>; /

原创 Android系統硬件訪問服務框架分析

  怎麼實現硬件訪問服務 1、JNI和HAL com_andorid_server_ledService.cpp (JNI文件註冊JNI本地方法:供app應用程序調用) hal_led.c (C庫:具體操作硬件接口函數實現) 2、修