原创 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、修