1、編寫LED驅動數組
1、建立LED驅動的設備文件函數
第一步:使用cdev_init函數初始化cdev測試
第二步:指定設備號字符串
設備號指定方法:1.直接在代碼中指定;2.動態分配。it
第三步:使用cdev_add函數將字符設備添加到內核中的字符設備數組中io
第四步:使用class_create宏建立struct classclass
第五步:使用device_create函數建立設備文件module
2、卸載LED驅動的設備文件file
void device_destroy(struct class *class, dev_t devt)硬件
void class_destroy(struct class *cls)
void unregister_chrdev_region(dev_t from, unsigned count)
3、設置寄存器與初始化LED驅動
經過設置不一樣寄存器的值,可惡意設置led引腳的狀態、打開或禁止上拉電路以及控制led的亮和滅。
4、控制LED
能夠經過 1:字符串控制led;(file_oprations.write函數) 2 :I/O命令控制led(file_oprations.icoctl函數)
5、LED驅動的模塊參數
使用module_param宏指定模塊參數
6、LED驅動的完整代碼
2、測試LED驅動
一、編寫測試I/O控制命令的通用程序
二、使用NDK測試LED驅動
三、使用Java測試LED驅動
3、LED驅動的移植
4、小結
一個完整的Linux驅動主要由內部處理和與硬件交互兩部分組成。其中內部處理主要是指Linux驅動的裝載、卸載、與設備文件相關的運動處理以及業務邏輯等。