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