- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux内核程序设计
第十讲 LINUX内核程序设计 LINUX进程的接口设计 LINUX内核模块示例程序 LINUX中断处理程序 内核同步问题 设备接口程序设计示例 第十讲 LINUX内核程序设计 LINUX进程的接口设计 进程、内核、硬件的过程 设备文件 进程接口函数 驱动程序 设备号 LINUX内核结构 LINUX的进程接口驱动程序设计 LINUX的进程接口驱动程序设计 LINUX内核程序设计 LINUX进程的接口设计 进程、内核、硬件的过程 设备文件 进程接口函数 驱动程序 设备号 LINUX的进程接口驱动程序设计 LINUX的进程接口驱动程序设计 LINUX的进程接口驱动程序设计 LINUX的进程接口驱动程序设计 LINUX内核程序设计 LINUX进程的接口设计 进程、内核、硬件的过程 设备文件 进程接口函数 驱动程序 设备号 LINUX的进程接口程序设计 LINUX的进程接口程序设计 LINUX内核程序设计 LINUX进程的接口设计 进程、内核、硬件的过程 设备文件 进程接口函数 驱动程序 设备号 LINUX的进程接口驱动程序设计 LINUX的进程接口驱动程序设计 主设备号和次设备号 major number:相同的设备使用相同的驱动程序 minor number:用来区分具体设备的实例 查看设备及其类型“ls -l /dev” 设备文件系统devfs /dev目录过于庞大,很多设备文件没有对应系统中的设备 devfs根据系统中的实际设备构建设备文件,并按目录存放,如 /dev/disk,/dev/pts LINUX核心生成方法 示例程序功能 LINUX核心生成方法 示例程序代码-进程1 示例程序代码-进程2 示例程序代码-设备A驱动程序 初始化模块程序 初识两个结构 file结构:在内核中标识一个打开的设备(文件) file_operations结构 :用于访问驱动程序的函数指针 如果用面向对象的概念来考虑问题 ,那么file可以看作一个对象,而操作它的函数(由file_operations结构标识)就是对象的方法。 file结构 file结构是在linux/fs.h中定义的一个数据结构,用来代表一个打开的文件(包括设备文件和普通文件)。它与用户空间程序中的FILE没有任何关联。 struct file{ mode_t f_mode , loff_t f_pos , unsigned int f_flags , struct file_operations *f_op , void *private_data , struct dentry *f_dentry , …… } file_operations结构 file_operations结构是一个定义在linux/fs.h中的函数指针数组。每个文件都通过file结构中的f_op字段与它自己的函数集相关联。这些函数负责系统调用的实现,而这个结构负责系统调用的映射。 驱动程序向系统注册 int register_chrdev(unsigned int major , const char *name , struct file_operations *fops); 在传统方式下,向系统添加一个驱动程序就意味着为其分配一个主设备号。主设备号在驱动模块注册时就必须提供。 参数major就是显式的为该驱动分配的主设备号。也可以动态的分配(major=0)。 设备文件节点 应用程序如何知道这个看起来很丑陋的主设备号(就像IP一样难以记忆),聪明的内核开发者早就为我们考虑到了——给设备起个名字(就像域名一样)。 给设备起名字,就是在文件系统上显式的创建一个文件节点,即设备文件 。 因此,应用程序看到的设备和文件是一样的,他们都是文件系统上的一个节点,有着相同的接口。 用mknod命令创建设备文件节点 mknod /dev/mydev1 c 254 0 mydev1就是设备的名字,它是/dev目录下的一个文件节点 c表示字符设备 254是主设备号 0是次设备号 字符设备驱动程序表chrdevs[ ] struct device_struct { const char *name; struct file_oprations * fops; }; static struct device_struct chrdevs[MAX_CHRDEV]; chrdevs[ ]是个全局变量,它在字符设备管理中处于核心地位。 Linux通过它组织起MAX_CHRDEV(255)个device_struct结构来记录相关
您可能关注的文档
- VC 读串口方法.doc
- 使用Cacti监控你的网络(二)- Cacti的安装.docx
- CListCtrl使用详解.docx
- USB应用程序开发.doc
- WINCE注册表.docx
- 20111103MongoDB学习报告.doc
- DirectX模型拾取(C#附源码).doc
- .net 下如何将文档文件(Word, Pdf等) 中的文本提取出来.docx
- startio例程学习.doc
- BerkeleyDB和eXtremeDB性能在LINUX下的比较.doc
- 雨霖铃情感深入探究与诗意理解教案.doc
- 夏季四防培训试题及答案.doc
- 开放银行生态构建新格局:2025年合作模式创新与金融服务创新.docx
- 航空发动机维修技术升级,2025年成本控制与安全性分析报告.docx
- 在阳光下成长800字高一作文通用11篇.docx
- 旅游服务2025年在线职业技能认证平台项目实施指南.docx
- 聚焦2025年,现代种业创新基地建设可行性及农业产业布局优化分析报告.docx
- 智能化矿山无人化作业技术:2025年智能化矿山建设市场前景分析.docx
- 供应链金融在中小微企业融资中的应用与挑战:2025年策略研究报告.docx
- 2025年新能源汽车制造行业市场竞争力研究报告.docx
最近下载
- 喀什千年老城规划方案.pptx VIP
- 凝血障碍诊断规范团体标准.docx VIP
- 重症患者SOFA评分文档.pptx VIP
- 《公共体育课》课程健美选项教学大纲.pdf VIP
- 新教材牛津译林版必修第一册全册各单元重点语法总结.pdf VIP
- 公共体育课课程排舞选项教学大纲.pdf VIP
- 不发火施工方案.pdf VIP
- 初中英语新人教版八年级上册Unit 2 Home Sweet Home语法知识讲解和练习(2025秋).doc VIP
- 新教材高中物理 期末综合检测(A、B卷)(含解析)新人教版必修第一册.pdf VIP
- 2025新人教版八年级英语上册Unit 2 Home Sweet课文讲解学案.docx VIP
文档评论(0)