一:什么是驅(qū)動(dòng)框架
(1)內(nèi)核中驅(qū)動(dòng)部分維護(hù)者針對(duì)每個(gè)種類(lèi)的驅(qū)動(dòng)設(shè)計(jì)一套成熟的、標(biāo)準(zhǔn)的、典型的驅(qū)動(dòng)實(shí)現(xiàn),然后把不同廠家的同類(lèi)硬件驅(qū)動(dòng)中相同的部分抽出來(lái)自己實(shí)現(xiàn)好,再把不同部分留出接口給具體的驅(qū)動(dòng)開(kāi)發(fā)工程師來(lái)實(shí)現(xiàn),這就叫驅(qū)動(dòng)框架。
(2)內(nèi)核維護(hù)者在內(nèi)核中設(shè)計(jì)了一些統(tǒng)一管控系統(tǒng)資源的體系,這些體系讓內(nèi)核能夠?qū)Y源在各個(gè)驅(qū)動(dòng)之間的使用統(tǒng)一協(xié)調(diào)和分配,保證整個(gè)內(nèi)核的穩(wěn)定健康運(yùn)行。譬如系統(tǒng)中所有的GPIO就屬于系統(tǒng)資源,每個(gè)驅(qū)動(dòng)模塊如果要使用某個(gè)GPIO就要先調(diào)用特殊的接口先申請(qǐng),申請(qǐng)到后使用,使用完后要釋放。又譬如中斷號(hào)也是一種資源,驅(qū)動(dòng)在使用前也必須去申請(qǐng)。這也是驅(qū)動(dòng)框架的組成部分。
(3)一些特定的接口函數(shù)、一些特定的數(shù)據(jù)結(jié)構(gòu),這些是驅(qū)動(dòng)框架的直接表現(xiàn)。
二:內(nèi)核中的LED驅(qū)動(dòng)框架
1:相關(guān)文件
(1)drivers/leds目錄,這個(gè)目錄就是驅(qū)動(dòng)框架規(guī)定的LED這種硬件的驅(qū)動(dòng)應(yīng)該存放的地方。
(2)led-class.c和led-core.c,這兩個(gè)文件加起來(lái)屬于LED驅(qū)動(dòng)框架的第一部分,這兩個(gè)文件是內(nèi)核開(kāi)發(fā)者提供的,他們描述的是內(nèi)核中所有廠家的不同LED硬件的相同部分的邏輯。分析發(fā)現(xiàn)這兩個(gè)文件中重的是led-class.c這個(gè)文件。
(3)leds-xxxx.c,這個(gè)文件是LED驅(qū)動(dòng)框架的第2部分,是由不同廠商的驅(qū)動(dòng)工程師編寫(xiě)添加的,廠商驅(qū)動(dòng)工程師結(jié)合自己公司的硬件的不同情況來(lái)對(duì)LED進(jìn)行操作,使用第一部分提供的接口來(lái)和驅(qū)動(dòng)框架進(jìn)行交互,最終實(shí)現(xiàn)驅(qū)動(dòng)的功能。
2:九鼎移植的內(nèi)核中l(wèi)ed驅(qū)動(dòng)
(1)九鼎移植的內(nèi)核中未使用內(nèi)核推薦的led驅(qū)動(dòng)框架
(2)九鼎的LED驅(qū)動(dòng)存放在drivers/char/led/x210-led.c中
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。