怎麼寫Linux驅動

來源:互聯網
上載者:User

標籤:c   style   a   工作   linux   類   

搞了一段時間驅動後的個人感悟,不管什麼驅動,要少走彎路,共同的驅動工作流程應該如下:

1、看書,看資料,搞清驅動的原理:核心的該類驅動的架構,工作機制等,建議必讀的文檔是linux核心原始碼的Document目錄下的該驅動的txt文檔,這裡的文檔最直接,最核心、最關鍵... 該有的都有了。

2、看datasheet,datasheet往往很多頁,需要現在全看嗎?No,現在先看總體的相關內容,先瞭解管腳定義,瞭解總體架構,瞭解寄存器或記憶體配置。掌握硬體的基本工作原理。

以上兩步別想著偷懶略過,即使你有現成的別人寫好的驅動,要調試到你的平台中去正常工作,到最後走了N多彎路都會發現,你沒有因為不讀文檔而節約到任何時間,反而浪費了N多時間。有句話說得很對:“在江湖上混的,遲早都要還的。”

3、看例子驅動,Linux核心的驅動,一般都有一個比較簡單的example代碼,具體是哪個,請看第一步的txt文檔。通過這個簡單的example代碼,更進一步的理清了驅動的工作原理。

4、好了,準備工作完成,這裡應該正式開工。自己寫?No,還是偷偷懶,網上找現成的,有恰好就是你的晶片的驅動,真幸運,直接用,當然經常是不能直接就能用上,要調試下下才行。沒有?找同一系列晶片的驅動,修改下用,也比較幸運。還是沒有?老老實實在example代碼提供的架構上開始寫吧!

5、調試過程中遇到問題?老老實實再看datasheet的相關部分吧,這個相關部分往往不在同一章節,多數時候會分布在很多章節中,不要漏過細節。你的寄存器都設定對了嗎?都對了?用示波器,邏輯分析儀抓波形,分析時序,看硬體對不對羅。不對,就找硬體工程師。還不對?到晶片官方網站,看看你的datasheet是最新的版本嗎?有沒有勘誤文檔。說不定你手頭的文檔都有錯誤,你當然調死也調不出來!

聯繫我們

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