- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
字符设备驱动程序设计;教学回顾;教学内容 ;教学要求 ;Linux设备驱动概述;Linux设备驱动概述;Linux设备驱动概述;Linux设备驱动概述;Linux设备驱动概述;Linux设备驱动概述;Linux设备驱动概述;设备号;设备号
在内核驱动程序中,使用dev_t类型用于保存设备号。
dev_t是无符号32位整型;
高12位表示主设备号;
低20位是次设备号;
在驱动程序中,常常要通过设备号获取主、次设备号:
MAJOR(dev_t dev); //获取主设备号
MINOR(dev_t dev); //获取次设备号
通过主、次设备号合成设备号:
MKDEV(int major, int minor);
dev_t类型以后可能会发生变化,但只要使用这些宏,就可保证设备驱动程序的正确性。
;分配和释放字符设备号
编写驱动程序要做的第一件事,为字符设备获取一个设备号。
如果事先知道所需要的设备号(主设备号)的情况,可以使用以下函数,向内核申请已知的设备号:
int register_chrdev_region(dev_t first,
unsigned count,
const char *name);
first是要分配的起始设备号值。
count 所请求的连续设备编号的个数。
name设备名称,指和该编号范围建立关系的设备。
分配成功返回0,失败返回负数。;分配和释放字符设备号
可以让内核动态分配设备号(主要是主设备号);使用下面的函数来动态申请设备号;
int alloc_chrdev_region(dev_t *dev,
unsigned baseminor,
unsigned count,
const char *name);
dev 是一个仅用于输出的参数, 它在函数成功完成时保存已分配范围的第一个编号。
baseminor 应当是请求的第一个要用的次设备号,它常常是 0.
count 和 name 参数跟request_chrdev_region 的一样.
;设备号;一些重要的数据结构;一些重要的数据结构;一些重要的数据结构;一些重要的数据结构;一些重要的数据结构;一些重要的数据结构;一些重要的数据结构;一些重要的数据结构;一些重要的数据结构;一些重要的数据结构;一些重要的数据结构;字符设备的注册;字符设备的注册;字符设备的注册;字符设备的注册;字符设备驱动程序编写流程;字符设备模块入口函数的执行流程:
;字符设备模块出口函数的执行流程:;;实例--(2)创建file_operations变量,将底层操作函数集合到该结构中;;实例--(3)模块初始化??数;;;编译模块;
在ARM板上插入模块
# insmod first_drv.ko
插入模块之后,可以通过文件/proc/devices 查看设备信息
# cat /proc/devices
找到 first_drv的主设备号是249,如下图
;建立设备文件
# mknod /dev/first_drv c 249 0
建立好设备文件之后,应用程序就可以通过设备文件来访问驱动程序了。
应用测试程序如图:;在开发板上执行测试程序的效果如下:;课堂小结;预习内容
您可能关注的文档
- 14有机含氮化合物讲解.ppt
- 2016年深圳市白石洲路考场攻略(新201604024)讲解.ppt
- 女性主义批评分析.ppt
- 建筑给水、排水及采暖工程用表分析.doc
- 13.夜莺的歌声讲解.ppt
- 奇妙的联想分析.ppt
- 15#地块施工电梯方案讲解.docx
- 15、《青海高原一株柳》讲解.ppt
- 15.1分式讲解.ppt
- 15.2科学探究:欧姆定律讲解.ppt
- 2024年河南省新县烟草公开招聘工作人员试题带答案详解.docx
- 2025高考全国二卷英语试卷中英对照翻译.docx
- 2024年木工刨床项目可行性研究报告.docx
- 2024年河北省深泽县烟草公开招聘工作人员试题带答案详解.docx
- 2025吉林通化市通化县域外事业单位企业人员回引工作笔试历年参考题库附带答案详解.pdf
- 2025江苏常熟市昊华融资租赁有限公司招聘1人笔试历年参考题库附带答案详解.pdf
- 营养物质的吸收和利用优教课件.ppt
- 人教版四年级英语下册第六单元课件公开课获奖课件百校联赛一等奖课件.pptx
- 2025五凌电力宁夏事业部招聘1人笔试历年参考题库附带答案详解.pdf
- 2024年河北省曲周县烟草公开招聘工作人员试题带答案详解.docx
最近下载
- 公司章程英文版 Company Articles of Association.doc VIP
- 英文版公司章程ARTICLES OF ASSOCIATION OF.docx VIP
- 从《倾城之恋》的白流苏透析张爱玲小说中的女性形象.docx
- 档案搬迁服务 投标方案.doc
- 日本 东要介--透析液纯净化.cn.pdf VIP
- mpr300电机保护器使用使用说明书.doc
- 2025年乡村振兴战略下县域经济产业链优化研究报告.docx VIP
- 胜利仪器VICTOR 240.240S.270.270S双通道系列示波器用户手册.pdf VIP
- 智能浇灌系统的策划书3篇.pdf VIP
- 新HSK3级词汇最新分析和总结.pdf VIP
文档评论(0)