Linux 驅動開發學習基本步驟

來源:互聯網
上載者:User

首次發表於:http://www.top-e.org/jiaoshi/html/?125.html

 

1.首先需要對C語言編程非常熟悉,這是在Linux下編程的基本條件。
2.會寫簡單的Makefile,編寫一個簡單的應用程式,再寫一個Makefile,讓它能正常編譯。Makefile主要目的就是用來管理編譯龐大的代碼檔案。
3.瞭解Linux核心的目錄結構,尤其要熟悉kernel目錄下的driver目錄組織圖,這裡一般存放核心中的驅動程式。
4.學會配置、編譯Linux核心。
5.寫一簡單char驅動,Makefile編譯通過,可以insmod, lsmod, rmmod。在驅動程式的init函數裡加列印字串, insmod後應該能夠通過dmesg看到輸出。
6.寫一完整char驅動, 加上read, write, ioctl等各種操作函數的驅動實現。 在ioctl裡完成從使用者空間向核心空間傳遞結構體的實現。
7.寫一block驅動,如磁碟驅動。加上read,write,ioctl,poll等各種函數實現。
8.學習Linux系統中interrupt機制的實現,這是編寫驅動中常用到的技術。
9.學習記憶體管理,明白各種memory alloc的函數實現細節,這是Linux開發的基本功之一。
10.學習鎖機制的應用,如訊號量、自旋鎖等。鎖主要用來解決很多同步和並發的問題。
11.以上知識你都認為掌握了,接下來就看核心中實際應用的驅動代碼。你會發現最基本的你已經知道了,大的架構都是一樣的,無非是read,write,ioctl等函數的實現,但裡麵包含了很多很多細小的實現細節是之前不知道的,比如程式的設計邏輯,演算法等。這時候就要考慮到很多實際的問題而不僅僅是準系統的實現。
12.最後就是堅持不斷地學習與總結。
總之,根據以上的步驟學習你會有實際的提高,但還有一點是最重要的,就是要有持之以恒的學習精神,並且要有解決任何問題的信心。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.