Linux設備樹語法詳解Linux Platform驅(qū)動模型(一) _設備信息中我們討論了設備信息的寫法,本文主要討論平臺總線中另外一部分-驅(qū)動方法,將試圖回答下面幾個問題:

  1. 如何填充platform_driver對象?

  2. 如何將驅(qū)動方法對象注冊到平臺總線中?

正文前的一點羅嗦

寫驅(qū)動也有一段時間了,可以發(fā)現(xiàn),其實驅(qū)動本質(zhì)上只做了兩件事:向上提供接口,向下控制硬件,當然,這里的向上并不是直接提供接口到應用層,而是提供接口給內(nèi)核再由內(nèi)核間接的將我們的接口提供給應用層。而寫驅(qū)動也是有一些套路可尋的,拿到一個硬件,我們大體可以按照下面的流程寫一個驅(qū)動:

  1. 確定驅(qū)動架構:根據(jù)硬件連接方式結合分層/分離思想設計驅(qū)動的基本結構

  2. 確定驅(qū)動對象:內(nèi)核中的一個驅(qū)動/設備就是一個對象,1.定義,2.初始化,3.注冊,4.注銷

  3. 向上提供接口:根據(jù)業(yè)務需要確定提供cdev/proc/sysfs哪種接口

  4. 向下控制硬件:1.查看原理圖確定引腳和控制邏輯,2.查看芯片手冊確定寄存器配置方式,3.進行內(nèi)

    網(wǎng)友評論