在解決這個問題之前,我們先搞明白linux究竟是怎樣管理原始碼中上萬個檔案的。
我們看linux原始碼的目錄,十分科學,基本上看到目錄就可以猜到裡面放的什麼,那怎麼把檔案連線起來,靠的就是kconfig,它可以告知makefile那些編譯那些不編譯。
第一步:在driver目錄下新建乙個my_dr/hello目錄,主要存放自己編寫的核心驅動**。當執行make menuconfig 時,能夠找到自己編寫的**。
目錄如圖所示:
第三步:編譯my_dr目錄下的kconfig和makefier
上圖是kconfig,對於這個檔案來說,必須要建立乙個選單,對應各個對應的驅動程式,可以方便找到子目錄下的kconfig資源
最後一步:找到driver目錄下的kconfig,在裡面新增 「source drivers/my_dr/kconfig」
在當前目錄的makefile中新增 「obj-y +=my_dr/」
有時候我們會看到"obj-$(config_cator) +=gator/"這樣的表述,意思是只有配置了config_cator變數gator目錄的檔案才可以顯示的選擇。
Linux驅動開發之靜態申請裝置號
一 1 標頭檔案 include linux fs.h 2 api 靜態申請裝置號 int register chrdev region dev t,unsigned,const char 動態分配裝置號 int alloc chrdev region dev t unsigned,unsigned...
如何將驅動程式靜態編譯進核心
驅動模組可以核心編譯好後動態載入進去,也可以在編譯核心的時候就直接新增。下面是將驅動程式靜態編譯進核心的方法 以乙個字元裝置為例 1.修改 drivers char下的kconfig檔案 在kconfig中增加如下 config my hello bool this is test a.儲存後回到核...
linux驅動開發擴充套件 靜態對映表建立過程
start kernel setup arch mdesc setup machine machine arch type paging init mdesc devicemaps init mdesc map io ifdef config mach smdkc110 machine start ...