第七章讀書筆記

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驅動的裝載、卸載、與設備文件相關的運動處理以及業務邏輯等。

相關文章
相關標籤/搜索