网站大量收购独家精品文档,联系QQ:2885784924

04linux系统驱动编程.ppt

  1. 1、本文档共166页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04linux系统驱动编程课件

Linux系统驱动编程 第五节 内存与I/O操作 4课时 四、硬件驱动原理 步骤二: 查看《TQ2440_V2核心板原理图.pdf》 该文档大多由开发板厂家提供,或由公司电路板设计人员提供。 在这个原理图中,查找nLED1连线位置。发现nLED1被连接在CPU的GPB5管脚,当把GPB5管脚处设置低电平,则LED1灯就会亮起,设为高电平,LED1灯就会灭掉。 如何控制GPB5管脚? 接下来我们要查看芯片厂商提供的芯片说明书。 Linux系统驱动编程 第五节 内存与I/O操作 4课时 四、硬件驱动原理 步骤三: S3C2440是三星厂家生产的芯片,所以,找到该厂家的芯片说明书《S3C2440.pdf》 查找GPB5所在的寄存器,发现在GPB寄存器中。 现在,我们来研究一下如何控制GPB寄存器。先看一下表格中的英文说明: GPBCON 内存物理地址 0是控制寄存器 开机后的初始值为0x0 GPBDAT 内存物理地址 0是数据寄存器 开机后的初始值没有定义 GPBUP 内存物理地址 0是数据寄存器 开机后的初始值为0x0 Linux系统驱动编程 第五节 内存与I/O操作 4课时 四、硬件驱动原理 Linux系统驱动编程 第五节 内存与I/O操作 4课时 四、硬件驱动原理 1) 先看GPBCON寄存器的说明,找到GPB5位置 GPB5在寄存器GPBCON的[11:10]位上,这两个位设置用二进制表示如下: 00:代有输入 当这两个位被设置为00时,就代表GPBDAT寄存器用于显示GPB状态 01:代表输出 当这两个位被设置为01时,就代表GPBDAT寄存器用于设置GPB值 10:代表nXBACK 当这两个位被设置为10时,代表GPB用于实现nXBACK功能 11:保留,这两个位设置为11时,没有任何意义。 Linux系统驱动编程 第五节 内存与I/O操作 4课时 四、硬件驱动原理 2) 再看GPBDAT寄存器说明   该寄存器共使用了11个位,即0到10位为有效数字。 其中每一个位对应一个GPB管脚,即第0位对应GPBCON寄存器的[1:0]位,是GPB0管脚的数据;第5位对应GPBCON寄存器的[11:10]位,是GPB5的管脚。 例如:GPBDAT的第5位,如果设为0,代表GPB5为低电平,设为1代表GPB5为高电平。 说明:在计算机器机中,二进制位就是电荷,有电荷就是1,没电荷就是0。 Linux系统驱动编程 第五节 内存与I/O操作 4课时 四、硬件驱动原理 3) 再看GPBUP寄存器说明 该寄存器共使用了11个位,即0到10位为有效数字。 其中每一个位对应一个GPB管脚,即第0位对应GPBCON寄存器的[1:0]位,对应关系同GPBDAT寄存器。 每一个位设置为0,代表使能对应引脚;设置为1,代表禁止对应引脚。 上电后这个寄存器初始状态为0x0,即每个管脚都默认为可用。所以我们可以不用设置该寄存器。 Linux系统驱动编程 第五节 内存与I/O操作 4课时 四、硬件驱动原理 总结: 1). 如果想控制LED灯,需要控制GPB寄存器。 2). 如果需要控制GPB寄存器,需要找到GPB寄存器内存的物理地址 GPBCON 0 GPBDAT 0x560000014 这个内存地址就是物理地址,对寄存器的控制就是把这个寄存器当做内存进行读写 3). 如果控制第1个LED灯开,需要在GPBCON[11:10]位设置为01, GPBDAT[5]设置为0 其它LED灯同此。 Linux系统驱动编程 第五节 内存与I/O操作 4课时 五、实现ARM板LED灯驱动 示例:实现ARM板LED灯驱动 1). 定义scull_dev结构 2). 编写驱动程序框架 3). 实现LED灯操作函数 4). 完善数据的初始化设置及释放 5). 完成read和write函数 6). 完成ioctl函数功能 7). 编写测试程序 8). 测试程序及驱动程序移植 作业:1.熟练查阅芯片资料 2.默写ARM板LED灯驱动 Linux系统驱动编程 驱动编程 第八天 第六节、内核定时器与中断处理 内核时间及延时 定核定时器

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档