關於linux 驅動的學習的幾點總結

以前看linux 驅動都是一點點的看,總有盲人摸象之感,對於它的思想沒有站在一定高度的認識。 今天學習了宋寶華的視頻,有一種醍醐灌頂的感覺,聽課的時候很爽,聽完就忘記的差不多了,所以學習要掌握好的方法。 及時 總結經驗和教訓。

linux驅動地位:

linux 驅動位於 liunx內核,他對發揮系統性能,cpu的佔用率密切相關。故一份好的驅動對於系統是很重要的。

linux 驅動的思想:

linux的驅動應該具有通用性(可移植性):這個特性很重要,這也是linux系統能兼容這麼多平臺的主要原因。可移植性的具體表現,同一份驅動在不同平臺或版本之間都可以使用。需要修改的僅僅是 與board相關的sdk裏的硬件配置。 好的驅動在一隻的時候內容是不用修改的,僅僅需要修改的是與具體平臺相關的東西。

linux  驅動是分層的,真正的應用沒有簡單的sample一樣的實現,應該都是一層調用一層的。這個思想要好好利用。

驅動的分離思想:如將I2c驅動分爲 I2cadapter和 I2c client 。當 寫I2c 的從設備時候不需要考慮I2c控制器怎麼實現,是需要調用接口就好了。

驅動分層的思想: 將linux 驅動劃分層,如linux 上層  ,驅動核心層, 硬件操作層。驅動的移植只需要它就好了。

幾個重要的知識點:

1. 網絡接口設備沒有體現一切都是文件的思想。因爲 大家都是用socket做網絡通信。

2.  每個驅動註冊的時候他會尋找匹配的設備;每個設備註冊的時候它會尋找匹配的驅動。  主管匹配的是 各種設備總線。 但是每種匹配的原則各個總線是不一樣的, probe被執行的前提就是,驅動匹配了對應的設備。

3. Linux內核處處體現了面向對象的思想。 但是是C語言的原因,不是使用面嚮對象語言來編寫的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章