- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章嵌入式设备驱动程序设计 本章要点 1、设备驱动程序基础知识 2、设备驱动程序设计 8.1嵌入式设备驱动程序基础 8.1.1 设备驱动程序概述 1、设备文件 设备文件分为三类: 字符设备文件 不需要缓冲就能够直接读写的设备(串口、并口等) 块设备文件 仅能以块为单位,通过缓冲区进行读写的设备(磁盘、内存、Flash等) 网络接口设备文件 网络设备访问的接口(网卡) 2、内核空间和用户空间 内核主要负责操作系统最基本的内存管理、进程调度和文件管理以及虚拟内存、需求加载、TCP/IP网络功能等。 内核空间和用户空间分别引用不同的内存映射,也就是程序代码使用不同的地址空间。 3、设备驱动程序和用户应用程序 设备驱动程序可以理解为操作系统的一部分,它的作用就是让操作系统能正确识别和使用设备。 嵌入式Linux内核采用可加载的模块化设计方式,也就是将最基本的核心代码编译在内核中,其他的代码可以则编译成内核的模块文件。 对设备进行访问和操作的程序由两部分组成,即:设备驱动程序+用户应用程序。 设备驱动程序特点: (1)内核代码:设备驱动程序是内核的一部分,如果设备驱动程序出错,则有可能导致系统崩溃。 (2)内核接口:设备驱动程序必须为内核或者其子系统提供一个标准接口 (3)可动态装载:大多数嵌入式Linux设备驱动程序都可以在需要时动态地装载进内核,在不需要时从内核中卸载。 设备驱动程序运行在内核空间,而用户应用程序则运行在用户空间。嵌入式操作系统通过系统调用和硬件中断来完成从用户空间到内核空间的控制转移。 8.1.2 设备驱动程序的框架 【例8-1】最简单的驱动程序。 #include linux/module.h #include linux/kernel.h int init_module(void) { printk(Hello,Test_drv [ ---kernel---]\n); return 0; } void cleanup_module(void) { printk(Goodbye Test_drv [ ---kernel---]\n); } module_init(init_module); module_exit(cleanup_module); 一般地,一个设备驱动程序模块的基本框架如下: #include ……/xxx.h //驱动程序所必须的包含文件 open(){ … } read(){ … } write(){ … } …… // 设备的功能接口函数与数据结构体 struct file_operation{ …… }; int init_module(void) { …… //驱动程序注册语句 } void cleanup_module(void) { …… //释放设备资源语句 } module_init(init_module); //加载驱动的入口点 module_exit(cleanup_module); //卸载设备驱动的入口点 8.1.3 设备驱动程序的加载过程 1、设备号 嵌入式Linux系统通过设备号来区分不同设备。设备号分为主设备号和次设备号。内核通过主设备号将设备与相应的驱动程序对应起来。主设备号的取值范围是0~255。当一个驱动程序要控制若干个设备时,就要用次设备号来区分它们。 2、设备进入点 对每个设备都要定义一个设备进入点,该设备进入点的名称则称为设备名。设备进入点又称为设备文件。 如果设备注册成功,则设备名就会写入到/proc/devices文件中。 对于设备进入点(设备文件),可以象操作磁盘上的普通文件一个,进行删除(rm)、移动(mv)和复制(cp)等操作。 (1) 创建设备进入点 创建设备进入点的命令格式为: mknod /dev/xxx type major minor 其中: xxx为设备名; type为设备类型,若为字符设备,则为c,若为块设备,则为b; major和minor分别为主设备号、次设备号。 (2) 查看设备进入点 查看设备进入点是否创建成功,命令的一般格式为: ls -l /dev |grep 设备名 3、加载设备驱动程序 (1)加载设备驱动程序的一般格式为: insmod 设备驱动程序.o (2)要察看当前加载了哪些设备驱动程序则使用下列命令: lsmod -l (3)若要卸载驱动程序,则使用命令
您可能关注的文档
- 第7章第8章调速与平衡.ppt
- 第7章力与运动.ppt
- 第7章第1讲 计算机.ppt
- 第7章:鼻、口、咽部手术.ppt
- 第7章扩展存储器设计.ppt
- 第7章胶体的动力学性质.ppt
- 第7章创业资源与创业融资.ppt
- 第7章酸碱盐.ppt
- 第7章轴向拉伸与压缩.ppt
- 第7讲 随机变量函数的分布2016.ppt
- 《老子》课件_原创精品文档.pptx
- 2025年河南对外经济贸易职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 《职业卫生培训》PPT课件.pptx
- 《脑卒中》ppt课件_原创精品文档.pptx
- 2025年河南女子职业学院高职单招语文2018-2024历年参考题库频考点含答案解析.docx
- 2025年河南女子职业学院高职单招职业适应性测试近5年常考版参考题库含答案解析.docx
- 《舞龙》教案精选.pptx
- 医务人员职业防护课件.pptx
- 2025年河南女子职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析.docx
- 《胃肠减压的护理》PPT课件.pptx
文档评论(0)