Linux驱动程序设计

Linux驱动程序设计

ID:36479382

大小:1.12 MB

页数:48页

时间:2019-05-09

Linux驱动程序设计_第1页
Linux驱动程序设计_第2页
Linux驱动程序设计_第3页
Linux驱动程序设计_第4页
Linux驱动程序设计_第5页
资源描述:

《Linux驱动程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、教学内容第一章嵌入式系统概述第二章学习板硬件及开发环境的建立第三章构建嵌入式Linux系统第四章嵌入式Linux设备驱动第五章嵌入式Linux串口和网络编程第六章嵌入式Linux图形编程Wednesday,October06,20211第四章嵌入式Linux驱动程序4.1嵌入式Linux设备驱动简介4.2设备的分类及特点4.3构造和运行驱动程序模块Wednesday,October06,20212课程目标掌握嵌入式Linux设备驱动程序的基本原理、架构和设计方法字符设备驱动块设备驱动网络设备驱动掌握Linux设备驱动开发中常

2、用的机制和内核资源中断顶/底半部处理内核定时器和延时操作并发控制在内核中的应用内存管理和分配阻塞型I/O和非阻塞型I/OWednesday,October06,20213本章目标了解Linux设备驱动程序的基础知识掌握Linux驱动模块的构造和装载方法Wednesday,October06,20214本章结构设备驱动程序简介Linux驱动程序概述设备驱动的HelloWorld模块内核驱动模块和应用程序对比编译和装载驱动模块构造和运行模块设备的分类和特点字符设备网络设备块设备Wednesday,October06,20215驱

3、动程序的作用应用程序驱动程序操作系统硬件设备writeioctlreadioctl为什么要学嵌入式Linux驱动程序开发?高需求内核代码的大部分新芯片、新设备高门槛需要具有硬件知识需要了解内核基础知识需要了解内核中的并发控制和同步复杂的软件结构框架高回报Wednesday,October06,202174-1设备驱动程序简介驱动程序的特点操控硬件,是应用程序和硬件设备之间的一个接口隐藏硬件细节,提高应用软件的可移植性提供安全性开发模式内核态驱动用户态驱动提供机制,而不是提供策略机制:驱动程序能实现什么功能策略:用户如何使用这

4、些功能Wednesday,October06,20218内核态和用户态大多数OS(包括Linux)把内核和运行在其上的应用程序分为两个层次管理,即用户态和内核态内核态有较高的权限,可以控制处理器内存的映射和分配方式等等————对应于ARM的svc模式用户态:只能运行系统上的应用程序————对应于ARM的usr模式内核态与用户态切换:可通过软件中断实现内核态和用户态驱动程序作为系统内核的一部分,其工作在内核态,而应用程序工作在用户态,即不能直接通过指针,把用户空间的数据地址传递给内核(MMU映射地址不一样)。需要经过转换,把用

5、户态“看到的空间”转换成内核态可访问的地址。Linux系统提供了一系列方便的函数实现这种转换,如:__get_user、__put_user、__copy_from_user、__copy_to_user4-2设备的分类和特点设备分类字符设备(chardevice)块设备(blockdevice)网络设备(networkdevice)Wednesday,October06,2021114-2设备的分类和特点字符设备特点像字节流一样来存取的设备(如同文件)通过/dev下的文件系统结点来访问。通常至少需要实现open,close

6、,read,和write等系统调用只能顺序访问数据通道,不能前后移动访问指针。特例:比如framebuffer设备就是这样的设备,应用程序可以使用mmap或lseek访问图像的各个区域Wednesday,October06,202112Linux内核结构Linux内核结构应用程序、库、内核、驱动程序的关系openreadwriteioctl……调用其他库函数称为系统调用,执行swi指令进入内核系统调用的异常处理其他功能物理设备控制器物理设备应用程序库其他库函数的实现内核openreadwriteioctl……驱动程序4层软件

7、关系说明(1)应用程序使用库函数提供的open函数打开设备文件(2)库根据open函数传入的参数执行“swi”指令,引起CPU异常,进入内核(3)内核的异常处理函数根据这些参数找到相应的驱动程序,返回一个文件描述符给库,进而返回给应用程序(4)应用程序得到文件描述符后,使用库提供的write或ioclt函数发出控制命令(5)库根据write或ioclt函数传入的参数执行“swi”指令,这条指令会引起CPU异常,再次进入内核(6)内核的异常处理函数根据参数调用驱动程序的相关函数,控制硬件4-2设备的分类和特点块设备特点块设备通

8、过位于/dev目录的文件系统结点来存取块设备和字符设备的区别仅仅在于内核内部管理数据的方式块设备有专门的接口,块设备的接口必须支持挂装(mount)文件系统。应用程序一般通过文件系统来访问块设备上的内容Wednesday,October06,2021174-2设备的分类和特点网络设备特点通

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。