Linux:驅動程式直接編譯到核心(源自國嵌的視頻教學)

來源:互聯網
上載者:User

引子:前面的文章實現了可載入的核心模組,通過這個核心模組實現對PWM定時器的控制和中斷處理常式的註冊。這裡討論一下將核心模組直接編譯進核心的過程,首先聲明來源於國嵌的視頻教學。

其實很簡單,第一步把冰箱門開啟...(此處略去200字)

正經的第一步:將源檔案代碼 mytimer.c(不知道這麼說規範不,反正就是 .c 檔案)拷到Linux原始碼目錄下的 drivers 下的某個目錄下 如:drivers/char

第二步:修改drivers/char 中的 Kconfig,Kconfig檔案維護著核心模組配置的菜單(Linux原始碼根目錄下 make menuconfig 出來的東西)
開啟Kconfig,看到:
menu "Charecter devices" (drivers/char 中的Kconfig維護著菜單中字元驅動的選項)
(依照其他驅動的格式添加)
config MY_TIMER
(Tab)bool "my_timer" (在make menuconfig 開啟的菜單中,my_timer 將出現在Charecter devices
的下一層)
(儲存關閉)
如果在make menuconfig 中選擇了my_timer,配置結果將體現在Linux原始碼根目錄下 .config 檔案中,在該檔案中將會自動添加 CONFIG_MY_TIMER=y 的配置項。

第三步:開啟drivers/char 中的 Makefile
(依照其他驅動的格式添加)
obj-$(CONFIG_MY_TIMER)        +=
mytimer.o
(儲存關閉)
編譯就可以了
同顏色的部分是相關聯的,即肝膽相照,榮辱與共,同生共死,互為因果

注意:

編譯可載入的核心模組的代碼 mytimer.c 同拷到直接編譯到核心所使用的
mytimer.c 稍有不同,載入的核心模組的代碼 mytimer.c 中開始部分需要有

#ifndef MODULE
#define MODULE
#endif

在直接編譯到核心時應當去掉

否則會報錯(該部分源自網民阿南的《ARMLinux入門與實踐》)

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.