編寫模組通訊例項:
模組add_sub提供add_integer()加法與sub_integer()減法函式,模組test呼叫函式完成操作。
分別對兩模組建立兩個資料夾,編寫對應的.c與makefile檔案,add_sub.h在add_sub模組資料夾內,分別make編譯成功。
遇到的問題:
1. insmod add_sub.ko成功。insmod test.ko失敗。
2. 兩檔案的makefile內容不清晰,尤其是如print_inc =$(pwd)/../include,symbol_inc = $(obj)/../include等語句
3. 載入成功後,想實現模組加入核心,隨系統一起啟動。配置好kconfig與makefile,執行過make menuconfig勾選選單,
重新啟動linux,cat /proc/modules | grep add,發現並沒有自動載入模組,此問題不知道如何解決。
問題1解決:
add_sub資料夾中的module.symvers檔案複製到test模組資料夾中,此時載入便可以成功
問題2解決:
好好學習makefile編寫知識
問題3未解決。
linux驅動模組之間通訊
一 export symbol核心模組函式匯出機制 1.案例 筆者要實現乙個功能,驅動模組 adc.ko 與驅動模組 gpio.ko 之間通訊。2.修改adc.ko驅動,在函式內部增加讀取adc狀態的介面函式 static unsigned char g hardware version 0x7e ...
Linux驅動模組基礎
1 模組載入函式 linux核心模組載入函式一般以 init標識宣告,典型的模組載入函式的形式如下 static int init initialization function void module init initialization function 模組載入函式必須以 module in...
Linux裝置驅動 模組
模組檔案 在檔案系統中可以被直接插入到核心的檔案 模組三要素 模組載入函式 必須 當在檔案系統中使用insmod或者該模組在核心被執行的時候,自動執行該函式 函式方式 1 預設方式 int init module void 2 使用者自定義 int test init void module ini...