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

猜你喜欢

转载自blog.csdn.net/qq_38677310/article/details/82941479