嵌入式Linux開發——(十七)Linux設備驅動開發

1、字符設備驅動程序

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結構中要使用到的各個成員函數

2、Linux異常處理體系結構

1)異常處理體系結構概述

    ①異常,就是能夠打斷CPU正常進行流程的事件,好比外部中斷、未定義的指令、試圖修改只讀的數據、執行swi指令等,當          這些事件發生時,CPU暫停當前的程序,先處理異常事件,再繼續執行被中斷程序

    ②常見異常

        A、未定義指令異常

        B、指令預取停止異常

        C、數據訪問停止異常

        D、中斷異常

        E、swi異常