對於大多數Linux驅動來講,須要直接與硬件交互,本章主要介紹用Linux驅動來控制二極管的明暗,即經過Linux驅動發送數據控制開發板上LED燈的開關。函數
首先咱們要了解LED驅動的實現原理。Linux驅動不是直接向硬件中的內存寫數據,而是與本機的I/O內存交互,Linux內核提供了多個與I/O內存交互的函數,每一個鏈接Linux的硬件在I/O內存中都會有映射首地址,開發板上的LED等也有其映射首地址。測試
而後開始編寫LED驅動:spa
1.測試開發板,打開電源開關接口
2.建立LED驅動設備文件內存
3.卸載LED驅動的設備文件開發
4.設置寄存器與初始化LED驅動字符串
5.控制LED編譯
6.設置LED驅動的模塊參數原理
本章給出了LED驅動的完整代碼能夠借鑑硬件
最後測試LED驅動,本章介紹了一些複雜的測試方法,不只能夠向LED設備文件發送字符串,還能夠發送I/O控制命令。
1.編寫測試I/O控制命令的通用程序
2.使用NDK測試LED驅動
3.使用Java測試LED驅動
此外還有LED驅動的移植,最簡單的移植是將其在不一樣Linux內核版本下進行編譯,移植驅動時要注意再修改驅動的源代碼時,儘可能不修改驅動的接口。
雖然LED驅動並不複雜,咱們仍是要注意在不一樣Linux內核版本和不太硬件平臺驅動移植的不一樣,有助於咱們深刻理解Linux技術。