- 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 字符设备驱动学习笔记 1
一、 设备文件
1、什么是设备文件?设备文件有什么用?
linux 设备文件就是一个实实在在看得见的文件 (什么是文件?一个 txt 文本就是一个文
件、一个 word 文档就是一个文件、 一张图片就是一个文件) ,只不过这个文件是 “设备类型 ”,
它是用来代表一个设备的, 一般在设备驱动加载之后创建, 在设备驱动卸载后移除。 有了设
备文件, 如果想对设备进行等操作。 只需对设备文件进行等操作即可。 这是如何实现的呢?
就是通过驱动程序实现的: 设备文件操作 系统内核 设备驱动 硬件设备, 设备
文件也是一个文件, c 库中对文件的操作包括打开、写、读、定位等,分别是通过 fopen 、
fwrite 、fread 、fseek 等 c 库函数实现的。 设备驱动的作用就是将这些对设备文件的打开、
读、写、定位等操作转化为对硬件设备的打开、读、写、定位等操作 。那么仅仅是实现对设
备进行打开、 读、写、定位等操作就能完全控制好它么?对于能与微控制器接口的设备都可
以?
2 、如何创建设备文件?
有两种方法: 1. 手工创建 mknod 方法: mknok filename type major minor 【major- 主
设备号; minor- 次设备号; type- 设备类型可取: c (字符设备),b (块设备)】执行此命令
之后就可以看到在当前目录下生成了一个名为 filename 的文件。 2. 自动创建 : 暂时不知
创建设备文件需要用到主次设备号,那么什么是主次设备号呢?
二、 主次设备号:
1、什么是主次设备号?主次设备号的作用是什么?
设备号, 就是系统为设备分配的一个编号。 在/dev 目录下 -ll ,可以看到有每个设备文件
都有两个号 ,他们就是主次设备号。
主设备号是用来标识与设备文件 (什么是设备文件?上面讲过) 相连的驱动程序, 主设
备号用来反映设备类型 ;次设备号被驱动程序用来辨别操作的是哪个设备, 次设备号用来区
分同类型的设备 。设备文件需要设备号才能创建;设备驱动也需要设备号才能装载。
设备文件正是通过主设备号找到它的驱动; 设备驱动正是利用次设备号才知道他要操作的具
体是哪个设备。
2 、内核中如何描述设备号?
内核中用 dev_t 类型来描述,其实质是是 unsigned int 32位整数,其中高 12位为主
设备号, 低20 位为次设备号用宏 MAJOR(dev_t dev )解出主设备号, MINOR(dev_t dev )
分解出次设备号。
3 、linux 内核如何分配主次设备号?
静态申请: 1.根据 /documentation/devices.txt, 确定一个没有使用的主设备号
2. 使用 register_chrdev_region 函数注册设备号: int
register_chrdev_region(dev_t from,
unsigned count ,const char *name )【from- 希望使用的设备号; count- 望申请
使用的设备号数目;
nanme-shebeiming (体现在/proc/devices) 】
静态注册的缺点是移植时容易发生冲突,但是简单。
动态分配 :使用 allo_chrdev_region 分配设备号: int allo_chrdev_region (dev_t *dev ,
unsigned baseminor,
unsigned count ,co
您可能关注的文档
- Linux与Windows的比较与课程感宣贯.pdf
- Linux中断处理过程浅析借鉴.pdf
- LINUX中软中断的实宣贯.pdf
- linux中硬件基础与软件基础定义.pdf
- Linux主机驱动与外设驱动分离思想借鉴.pdf
- Linux主要shell命令详实用.pdf
- linux字符设备开发详解知识.pdf
- Linux字符设备驱动程序实验收集.pdf
- linux最常用命令参考.pdf
- LIN主节点DEMO板设计说明书整理.pdf
- 中国国家标准 GB 14287.5-2025电气火灾监控系统 第5部分:测量热解粒子式电气火灾监控探测器.pdf
- 《GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存》.pdf
- GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存.pdf
- 中国国家标准 GB/T 42706.4-2025电子元器件 半导体器件长期贮存 第4部分:贮存.pdf
- 中国国家标准 GB/T 19436.2-2025机械电气安全 电敏保护设备 第2部分:使用有源光电保护装置(AOPDs)设备的特殊要求.pdf
- 《GB/T 19436.2-2025机械电气安全 电敏保护设备 第2部分:使用有源光电保护装置(AOPDs)设备的特殊要求》.pdf
- 《GB 27898.4-2025固定消防给水设备 第4部分:消防气体顶压给水设备》.pdf
- GB 27898.4-2025固定消防给水设备 第4部分:消防气体顶压给水设备.pdf
- GB/T 31270.1-2025化学农药环境安全评价试验准则 第1部分:土壤代谢试验.pdf
- 中国国家标准 GB/T 31270.1-2025化学农药环境安全评价试验准则 第1部分:土壤代谢试验.pdf
最近下载
- 2025四川成都环境投资集团有限公司招聘笔试历年参考题库附带答案详解.docx
- 市政道路及雨污水工程施工组织设计.docx VIP
- 数列大题综合18种题型(讲练)-高考数学二轮复习.pdf VIP
- 10 北京故宫(课件)-浙美版初中美术七年级下册.pptx VIP
- DB54T 0342-2024 江达牦牛DB54T 0342-2024 江达牦牛.pdf VIP
- DB34_T 1267-2025 造林技术规程DB34_T 1267-2025 造林技术规程.docx VIP
- 某中学三年(2025年-2028年)发展规划.docx VIP
- 14449小学课程与教学设计-精讲.pdf VIP
- VD4真空断路器(New Design)(安装使用说明书).pdf
- DB22_T 3650-2024 柞蚕术语DB22_T 3650-2024 柞蚕术语.pdf VIP
原创力文档


文档评论(0)