- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]Linux驱动开发
Linux驱动程序 吴士力 e-mail: wsl.wushili@ 驱动程序的概念 驱动程序的作用 软件控制硬件 驱动程序与操作系统 1. 无操作系统 2. 有操作系统 驱动程序开发的特点 1. 与底层硬件资源关系密切 2. 与内核关系密切 3. 开发量相对低(更新速度相对慢) 软件控制硬件的方法 GPIO(通用输入输出接口) S3C2410/2440:117/130个I/O接口,分为GPA、GPB、GPC…等 I/O端口的使用方法 通过访问寄存器来使用I/O端口。 GPxCON:用于控制端口引脚的功能(输入、输出) GPACON中的每一位控制一个引脚(0为输出、1为输入) GPBCON…中的每两位控制一个引脚(00为输入、01为输出) GPxDAT:用于读写引脚数据 引脚为输入时, 读GPxDAT中的值可以获得对应引脚电平的高低 引脚为输出时, 写GPxDAT的值可控制对应引脚电平的高低 GPxUP:用于控制引脚是否使用上拉电阻 软件控制硬件的方法 软件控制硬件实例(LED灯) S3C2410/2440: GPB5引脚输出低电平点亮LED灯,高电平熄灭LED灯 GPBCON的地址是0 GPBDAT的地址是0 示意代码: #define GPBCON (*(volatile unsigned long *)0 #define GPBDAT (*(volatile unsigned long *)0 #define GPB5_out (1(5*2)) GPBCON = GPB5_out; //设置GPB5引脚为输出状态 (是否有错误?) GPBDAT = ~(15); //GPB5引脚输出低电平 无操作系统驱动程序 应用程序 while(1) { if(serial_int==1) //串口中断发生 { serial_process(); //调用串口处理函数 serial_int=0; } } 驱动程序 void serial_process(void) { //串口处理代码 } 无操作系统驱动程序的特点 应用程序?驱动程序?硬件 (应用程序的接口与驱动程序的接口一致) 有操作系统驱动程序 有操作系统驱动程序的结构 驱动是内核的一部分(内核调用驱动) 有操作系统驱动程序的特点 驱动程序具有内核统一的访问接口 驱动程序的原理 硬件访问操作 打开设备、关闭设备、读写设备、控制设备等 file_operations file_operations (/include/linux/fs.h)中定义了设备的各个访问接口 字符设备驱动程序框架 基本框架实例分析 设备驱动程序的并发控制 并发控制的基本原理 多道系统?并发运行?产生竞态 解决竞态的方法 互斥访问共享资源 临界区(访问共享资源的代码区) 共享资源互斥访问的手段 1. 中断屏蔽 原子操作 信号量 自旋锁 屏蔽中断 屏蔽中断的基本原理 进入临界区前屏蔽系统中断 进程与中断程序之间、进程与进程之间不会发生竞态 屏蔽中断的使用方法 local_irq_disable() //屏蔽中断 … critical section //临界区 … local_irq_enable() //打开中断 原子操作 原子操作的基本原理 在执行过程中不会被别的执行任务打断的操作 Linux内核提供了两类原子操作:整型操作、位操作 整型操作 void atomic_set(atomic_t *v, int i) //初始化原子变量 atomic_t v = ATOMIC_INIT(0) //原子变量值为0 void atomic_add_return(int i, atomic_t *v) //原
您可能关注的文档
- [工学]cwindows应用程序基础.ppt
- [工学]C语言 停车场管理系统.doc
- [工学]C语言 课件 谭浩强 第十章 指针.ppt
- [工学]C语言 第3章 简单的C程序设计.ppt
- [工学]C语言 数组.ppt
- [工学]C语言11A.pdf
- [工学]C语言 第8章 构造数据类型指针1指针的基本概念和数组.ppt
- [工学]C语言ch05.ppt
- [工学]C语言循环结构程序设计2.ppt
- [工学]C语言概论课件.ppt
- 专题06 经济体制(我国的社会主义市场经济体制)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题11 世界多极化与经济全球化-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 专题03 经济发展与社会进步-5年(2020-2024)高考1年模拟政治真题分类汇编(浙江专用)(解析版).docx
- 专题09 文化传承与文化创新-5年(2020-2024)高考1年模拟政治真题分类汇编(北京专用)(原卷版).docx
- 5年(2020-2024)高考政治真题分类汇编专题08 社会进步(我国的个人收入分配与社会保障)(原卷版).docx
- 专题07 探索世界与把握规律-5年(2020-2024)高考1年模拟政治真题分类汇编(解析版).docx
- 5年(2020-2024)高考政治真题分类汇编专题06 经济体制(我国的社会主义市场经济体制)(原卷版).docx
- 专题11 全面依法治国(治国理政的基本方式、法治中国建设、全面推进依法治国的基本要求)-五年(2020-2024)高考政治真题分类汇编(解析版).docx
- 专题17 区域联系与区域协调发展-【好题汇编】十年(2015-2024)高考地理真题分类汇编(解析版).docx
- 专题01 中国特色社会主义-5年(2020-2024)高考1年模拟政治真题分类汇编(原卷版).docx
最近下载
- NB_T 31083-2016风电场控制系统功能规范.pdf
- 德兴隆_PVC胶粒_A2190072365101001_2019.4.11_REACH检测报告英文版.pdf VIP
- 输液港植入术术后护理.pptx VIP
- 血液系统疾病(西安交通大学)中国大学MOOC慕课章节测验答案(课程ID:1462060167).pdf
- GB 1499.2-2024 钢筋混凝土用钢 第2部分:热轧带肋钢筋.pdf
- 征信简版电子版PDF个人信用报告最新版2024年可编辑带水印模板.pdf
- 《高中64篇必考古诗文》.doc VIP
- Rota润唐 RTBR-601馒头面包机 馒头魔法盒说明书用户手册.pdf
- 《洋流》教学设计-优秀教案.docx
- 新人音版高中音乐必修“音乐鉴赏”《高山流水志家国——流水》说课稿.doc
文档评论(0)