- 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
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)