1)應用程序、庫、內核、驅動程序的關係網絡
2)Linux驅動程序的分類和開發步驟函數
①Linux的外設可分爲3類:字符設備(character device)、塊設備(block device)、網絡接口(network interface)測試
A、字符設備:可以像字節流同樣被訪問的設備,就是說對它的讀寫以字節爲單位,好比串口blog
B、塊設備:數據以塊的形式存放,好比NAND Flash接口
C、網絡接口:具備字符設備和塊設備的部分特色事件
②Linux驅動程序開發步驟開發
A、查看原理圖、數據手冊、瞭解設備的操做方法io
B、在內核中找到相近的驅動程序,以它爲模板進行開發,有時須要從零開發編譯
C、實現驅動初始化:向內核註冊這個驅動模板
D、設置所要實現的操做
E、實現中斷服務
F、編譯該驅動到內核中
G、測試驅動程序
③驅動程序的加載和卸載
使用insmod命令加載,使用rmmod命令卸載,使用lsmod命令查看內核中加載了哪些模塊
3)字符設備驅動程序開發
①大概流程:
A、編寫驅動程序初始化函數
B、構造file_operations結構中要使用到的各個成員函數
1)異常處理體系結構概述
①異常,就是能夠打斷CPU正常進行流程的事件,好比外部中斷、未定義的指令、試圖修改只讀的數據、執行swi指令等,當 這些事件發生時,CPU暫停當前的程序,先處理異常事件,再繼續執行被中斷程序
②常見異常
A、未定義指令異常
B、指令預取停止異常
C、數據訪問停止異常
D、中斷異常
E、swi異常