linux驅動程序:控制發光二極管

 

  一個完整的Linux驅動包括內部處理和交互兩部分。其中內部處理主要是指Linux驅動的裝載、卸載、與設備文件的相關動做處理以及業務邏輯等。與硬件交互主要是指經過iowrite3二、ioread32等函數與硬件中的寄存器進行數據交互。對於大多數的Linux驅動來講,須要直接與硬件交互。而控制發光二極管該Linux驅動用來控制開發板上的4個Led燈。經過向Linux驅動發送數據能夠控制Led燈的開關。數組

  雖然Linux驅動直接與硬件打交道,可是並非直接向硬件中的內存寫數據,而是與本機中的I/O內存進行交互。Linux內核提供了多個與I/O內存交互的函數,Linux內核的內存管理模塊負責同步I/O內存與硬件中的數據。每個鏈接Linux的硬件在I/O內存中都會有映射地址。函數

編寫Led燈驅動的步驟以下:測試

一、 建立LED驅動設備文件:spa

(1)   使用cdev-init函數初始化cdev;內存

(2)   指定設備號;開發

(3)   使用cdev_add函數將字符設備添加到內核中的字符設備數組中;字符串

(4)   使用class_creat宏建立struct class;同步

(5)   使用device_create函數建立設備文件;it

二、  卸載Led驅動的設備文件內存管理

三、 設置寄存器和初始化led驅動

四、 控制led燈:

(1)   經過字符串控制LED

(2)   經過I/O命令控制

五、 LED驅動的模塊參數

六、 測試LED驅動

(1)   編寫測試I/O控制命令的通用程序;

(2)   使用NDK測試LED驅動;

(3)   使用Java測試LED驅動;

七、Led驅動移植

相關文章
相關標籤/搜索