- 1、本文档共194页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
⒌ ADC应用程序编程举例 【例10.10】以下程序举例,目的是说明在应用程序中,如何使用驱动程序提供的接口函数,读出前3个通道的A/D转换值,然后变换成对应的电压值显示。在程序运行过程中,可以调节目标板上的3个可调电阻,显示的采集数据会随之变化。 程序设计采用了线程技术,并且每2秒读出一次时间值 ,显示时、分、秒及3个通道的A/D转换值、对应的电压。 程序运行过程中,如果从minicom终端输入任何一个字符并回车,程序结束。 程序代码如下:(略) ⒍ 程序执行结果举例 程序执行结果可能是: time:08:13:12 adc(ch0)=0-0.0000V adc(ch1)=1022-3.2968V adc(ch2)=512-1.6516V time:08:13:14 adc(ch0)=0-0.0000V adc(ch1)=1022-3.2968V adc(ch2)=512-1.6516V … 10.5 ADC驱动程序源代码分析 (S3C2410A) 10.5.1 概述 Linux中把一切设备都抽象为文件,不同设备的设备驱动程序把不同的硬件特性和操作进行了内部封装,给用户编写应用程序提供的是类似于对传统文件(如磁盘文件)进行操作的一组接口函数,如open、read、write、close(release)、ioctl等。 以下分析的ADC驱动程序源代码程序名为s3c2410-adc.c,对应的内核版本为2.4。 本节分析的源代码有两个头文件和一个设备驱动程序: · s3c2410-adc.h头文件 · s3c2410.h-chip.H头文件 · s3c2410-adc.c设备驱动程序 在s3c2410-adc.c中,还包含了Linux内核提供的许多头文件,并且有些函数是在Linux内核的其他文件中实现的,本节只分析s3c2410-adc.c中定义的函数及相关的数据结构。 10.5.2 Linux设备驱动程序概述 ⒈ 设备驱动程序、模块 ⑴ 设备驱动程序 设备驱动程序也简称为驱动程序,它把对复杂的设备(硬件)进行的操作隐藏起来,将其抽象成一个结构良好的、能够提供统一编程接口的、可以为系统的其他部分(例如应用程序)提供使用设备的方法。 用户应用程序中对外设的使用,是由Linux内核实现的。内核通过驱动程序,对设备进行具体操作。 驱动程序有统一的编程接口(函数调用),对设备的操作如同对传统的磁盘文件操作一样,是由驱动程序提供的open、read、write、close(release)、ioctl等接口函数实现的。 驱动程序中可以安装将要使用的中断处理程序,可以使用中断、DMA操作。 ⑵ 驱动程序与应用程序的区别 应用程序装入内存的用户空间,从main函数开始运行,运行结束将释放应用程序占用的内存空间。 将模块加载到内核,模块装入内存的内核空间,装入后也没有一个像应用程序那样的运行的开始点。装入内核空间的模块经过向内核注册后,模块中的各个函数处于等待系统调用状态。只有调用时,才会运行。 编写应用程序可以使用glibc等标准的C函数库,但是编写驱动程序不允许使用这个库。编写驱动程序所包含的头文件通常在include/Linux和include/asm子目录下。 ⑶ 可装载模块 Linux有一个特性,即内核提供的功能,可以在内核运行时扩展。当系统运行时,超级用户可以使用insmod命令,向内核添加功能;也可以使用rmmod命令,移除已经添加的功能。 可以在系统运行时添加到内核中的代码被称为模块。设备驱动程序是模块中的一种类型。每个模块是由目标代码,如s3c2410-adc.o组成,而不是一个可执行文件。 Linux系统通常将设备分为三种基本类型:字符、块和网络,ADC属于字符类型设备,对应的驱动程序称为字符设备驱动程序。 字符设备可以通过文件系统的节点(inode)来访问。 ⑷ 模块的依赖性 可加载的驱动程序,即模块,对Linux内核版本有依赖性。或者说不同的内核版本对应的驱动程序,对相同的外设,实现的方法有所不同。因此在2.4内核版本下的ADC驱动程序,不能用于2.6内核版本。 模块对目标板处理器架构、外设接口电路也存在着依赖性。例如同样是2.6版内核,不同架构处理器的目标板,ADC驱动程序是不相同的;相同架构处理器的目标板,如果ADC接口电路不同,ADC驱动程序也是不相同的。 ⒉ 内核空间和用户空间 模块运行在内核空间,应用程序运行在用户空间。
您可能关注的文档
- 冷链监控系统安装手册.doc
- 反应堆材料学chapter01绪论part1.ppt
- 冷链物流行业中二氧化碳技术及应用.ppt
- 冷凝集素综合征——健康教育.ppt
- 冷态启动操作卡.doc
- 反应釜、机封、减速机培训资料.ppt
- 反应工程CO中温变换.pptx
- 反应气压缩机试车方案.docx
- 励志 没关系爱情.ppt
- 利用化学方程式的计算1.ppt
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
最近下载
- 文献综述中小企业成本控制研究.docx VIP
- (2025春新版本)人教版七年级历史下册全册教案.pdf
- 北京市一零一中学2023-2024学年七年级下学期期中考试英语试卷(含答案).pdf
- 物业管理服务报价表完整优秀版 .pdf VIP
- 文献综述--中小企业成本控制的研究.doc VIP
- 莒县鸿瑞矿业有限公司新型节能环保型石灰窑项目(三期)竣工环境保护验收监测报告.docx VIP
- 第9课 近代西方的法律与教化 教案-统编版(2019)高中历史选择性必修1国家制度与社会治理.pdf
- ZOOM声乐乐器L-12 快速入门 (Chinese)说明书用户手册.pdf
- 基于单片机的宠物喂养系统的设计与实现.docx
- 中小学(三阶魔方的复原)校本教材.doc VIP
文档评论(0)