天天看點

驅動學習之LED驅動架構

一:什麼是驅動架構

  (1)核心中驅動部分維護者針對每個種類的驅動設計一套成熟的、标準的、典型的驅動實作,然後把不同廠家的同類硬體驅動中相同的部分抽出來自己實作好,再把不同部分留出接口給具體的驅動開發工程師來實作,這就叫驅動架構。

  (2)核心維護者在核心中設計了一些統一管控系統資源的體系,這些體系讓核心能夠對資源在各個驅動之間的使用統一協調和配置設定,保證整個核心的穩定健康運作。譬如系統中所有的GPIO就屬于系統資源,每個驅動子產品如果要使用某個GPIO就要先調用特殊的接口先申請,申請到後使用,使用完後要釋放。又譬如中斷号也是一種資源,驅動在使用前也必須去申請。這也是驅動架構的組成部分。

  (3)一些特定的接口函數、一些特定的資料結構,這些是驅動架構的直接表現。

二:核心中的LED驅動架構

1:相關檔案

  (1)drivers/leds目錄,這個目錄就是驅動架構規定的LED這種硬體的驅動應該存放的地方。

  (2)led-class.c和led-core.c,這兩個檔案加起來屬于LED驅動架構的第一部分,這兩個檔案是核心開發者提供的,他們描述的是核心中所有廠家的不同LED硬體的相同部分的邏輯。分析發現這兩個檔案中重的是led-class.c這個檔案。

  (3)leds-xxxx.c,這個檔案是LED驅動架構的第2部分,是由不同廠商的驅動工程師編寫添加的,廠商驅動工程師結合自己公司的硬體的不同情況來對LED進行操作,使用第一部分提供的接口來和驅動架構進行互動,最終實作驅動的功能。

2:九鼎移植的核心中led驅動

  (1)九鼎移植的核心中未使用核心推薦的led驅動架構

  (2)九鼎的LED驅動存放在drivers/char/led/x210-led.c中

本文轉自 菜鳥養成記 51CTO部落格,原文連結:http://blog.51cto.com/11674570/1876414

繼續閱讀