嵌入式Linux開發——(十七)Linux裝置驅動開發
一、字元裝置驅動程式
1)應用程式、庫、核心、驅動程式的關係
2)Linux驅動程式的分類和開發步驟
①Linux的外設可分為3類:字元裝置(character device)、塊裝置(block device)、網路介面(network interface)
A、字元裝置:能夠像位元組流一樣被訪問的裝置,就是說對它的讀寫以位元組為單位,比如串列埠
B、塊裝置:資料以塊的形式存放,比如NAND Flash
C、網路介面:具有字元裝置和塊裝置的部分特點
②Linux驅動程式開發步驟
A、檢視原理圖、資料手冊、瞭解裝置的操作方法
B、在核心中找到相近的驅動程式,以它為模板進行開發,有時需要從零開發
C、實現驅動初始化:向核心註冊這個驅動
D、設定所要實現的操作
E、實現中斷服務
F、編譯該驅動到核心中
G、測試驅動程式
③驅動程式的載入和解除安裝
使用insmod命令載入,使用rmmod命令解除安裝,使用lsmod命令檢視核心中載入了哪些模組
3)字元裝置驅動程式開發
①大概流程:
A、編寫驅動程式初始化函式
B、構造file_operations結構中要使用到的各個成員函式
二、Linux異常處理體系結構
1)異常處理體系結構概述
①異常,就是可以打斷CPU正常進行流程的事件,比如外部中斷、未定義的指令、試圖修改只讀的資料、執行swi指令等,當 這些事件發生時,CPU暫停當前的程式,先處理異常事件,再繼續執行被中斷程式
②常見異常
A、未定義指令異常
B、指令預取中止異常
C、資料訪問中止異常
D、中斷異常
E、swi異常