Linux驅動開發學習的一些必要步驟

2021-04-23 07:27:36 字數 811 閱讀 1287

1. 學會寫簡單的makefile

2. 編一應用程式,可以用makefile跑起來

3. 學會寫驅動的makefile

4. 寫一簡單char驅動,makefile編譯通過,可以insmod, lsmod, rmmod. 在驅動的init函式裡列印hello world, insmod後應該能夠通過dmesg看到輸出。

5. 寫一完整驅動, 加上read, write, ioctl, polling等各種函式的驅動實現。 在ioctl裡完成從使用者空間向核心空間傳遞結構體的實現。

6. 寫一block驅動, 加上read,write,ioctl,poll等各種函式實現。

7. 簡單學習下記憶體管理, 這個是最難的,明白各種memory alloc的函式實現細節。這是linux開發的基本功。

8. 學習鎖機制的應用,這個不是最難的但是最容易犯錯的,涉及到很多同步和併發的問題。

9. 看核心中實際應用的驅動**。 你會發現最基本的你已經知道了, 大的框架都是一樣的, 無非是read, write, ioctl等函式的實現, 但裡面包含了很多很多細小的實現細節是之前不知道的。 這時候就要考慮到很多別的問題而不僅僅是基本功能的實現。

推薦您看2.6.20中integrated的乙個驅動 kvm, 記得是在driver/lguest下,很好玩的, 就是linux下的虛擬機器驅動, **不長,但功能強大。有能力的可以自己寫一作業系統按照要求做成磁碟映象載入到虛擬機器中, 然後客戶機可以有自己的4g虛擬位址空間。

10. 看完驅動歡迎您進入linux kernel學習中來。

最簡單的方法,跟著ldd(linux devive driver)做一遍。

Linux驅動開發學習的一些必要步驟

1.學會寫簡單的makefile 2.編一應用程式,可以用makefile跑起來 3.學會寫驅動的makefile 4.寫一簡單char驅動,makefile編譯通過,可以insmod,lsmod,rmmod.在驅動的init函式裡列印hello world,insmod後應該能夠通過dmesg看到...

關於LINUX驅動的一些疑問

1,像字元裝置混雜裝置,都只註冊乙個裝置就ok了,為了什麼都的驅動除了註冊裝置還要註冊驅動。而驅動結構體裡面一般都有probe函式。2.平台分驅動註冊和裝置註冊這個我是知道的,註冊完了會呼叫驅動結構體裡面的probe函式,好像真正的驅動都是在裝置結構體裡面完成了,話有裝置 節點的生成。3,除了這些,...

Linux驅動開發學習(一)

1.軟體驅動 驅動硬體,使硬體處於某種工作模式,提供控制硬體方法 2.驅動的地位 驅動是連線核心與裝置的橋梁 1.字元裝置 字元裝置驅動 字元裝置檔案 2.網路裝置 網路裝置驅動 3.塊裝置 塊裝置驅動 塊裝置檔案 1.驅動編寫 2.驅動編譯 3.驅動使用 三要素 1.入口 載入 module in...