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

  1. 如何填充platform_driver對(duì)象?

  2. 如何將驅(qū)動(dòng)方法對(duì)象注冊(cè)到平臺(tái)總線中?

正文前的一點(diǎn)羅嗦

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

  1. 確定驅(qū)動(dòng)架構(gòu):根據(jù)硬件連接方式結(jié)合分層/分離思想設(shè)計(jì)驅(qū)動(dòng)的基本結(jié)構(gòu)

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

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

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

    網(wǎng)友評(píng)論