1. 程式人生 > >嵌入式Linux開發——(十七)Linux裝置驅動開發

嵌入式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異常