ARM开发板mini2440的按键控制LED小程序.doc

ARM开发板mini2440的按键控制LED小程序.doc

ID:51686319

大小:94.00 KB

页数:4页

时间:2020-03-15

ARM开发板mini2440的按键控制LED小程序.doc_第1页
ARM开发板mini2440的按键控制LED小程序.doc_第2页
ARM开发板mini2440的按键控制LED小程序.doc_第3页
ARM开发板mini2440的按键控制LED小程序.doc_第4页
资源描述:

《ARM开发板mini2440的按键控制LED小程序.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、ARM开发板mini2440的按键控制LED小程序Postedin Hardware&Device byHansAdreamanMay24,2009Tags: LED, mini2440, s3c2440, 嵌入式, 开发板, 按键, 驱动mini2440是当前最经济的arm9开发板了,目前就是500多元一块,麻雀虽小,重要的那几个部件也还算齐全,用它来做计算机系统底层的学习工具很合适。而且关于s3c2410/2440系列的教程资料和经验文章在网上很多,大家遇到问题时多google一下也能快速地解决。先拿一个最初步的LED控制程序上手吧。我的实验开发环境

2、是基于ubuntu9.04系统。控制硬件的行为,说到底就是设置其对应的寄存器。mini2440开发板有四个LED灯(下图黄色部分,得把LED屏先取下来才能看到,用螺丝刀取下四角的四颗螺丝),还有六个按键(很小,在cmos电池的旁边排成两列,下图红色圈住的部分),我们可以通过配置这些硬件对应的寄存器的值(根据映射在内存空间的地址),来控制它们。例如,四个LED灯有一个配置寄存器(在mini2440板上对应标称为GPBCON)和一个数据寄存器(对应标称为GPBDAT),这两个寄存器都是32bit的整数数值。mini2440开发板布局图四个LED灯分别使用GP

3、BCON寄存上的4组“2bit位”来配置其是否是输出状态,例如,LED1使用第11、12bit,LED2使用第13、14bit,LED3使用第15、16bit,LED4使用第17、18bit。当把这两位(从高位到低位的顺序看,即[bit12、bit11]这样为一组)设置为00则表示输入状态,01(对于LED1就是bit12为0,bit11为1)表示输出状态,10为特殊功能,11保留待用。GPBDAT寄存器的其中4个bit对应着4个LED灯的数值状态。第6个比特对应LED1,第7个比特对应LED2,第8个比特对应LED3,第9个比特对应LED4。在这样的布

4、局下,我们习惯把LED1对应的某些GPBCON位称为GPBCON5,LED2对应的称为GPBCON6,LED3对应的称为GPBCON7…以此类推。因为GPBCON&(0×1<<2*5)不为0表示LED1使用的第11、12位处于输入状态,GPBCON&(0×1<<2*6)不为0表示LED2使用的第13、14位处于输入状态…同理,GPBCON&=~(0×3<<2*5)即设置LED1为输入状态,GPBCON&=~(0×3<<2*6)即设置LED2为输入状态…类似的,GPBDAT对应LED1为GPBDAT5(1<<5),对应LED2为GPBDAT6(1<<6)…

5、mini2440按键对应GPG分布六个按键使用的是是GPGCON寄存器上的4组“2bit位”来配置其是否处于输入状态,例如,(参照上图中六个按键布局,是根据按键在CMOS电池上方(北部)的布局画的),右上的按键对应GPGCON的第23、24比特,左下的按键对应GPGCON的第1、2比特。GPGDAT寄存器的其中6个比特,对应着6个按键的数值状态。与LED同样地,我们习惯称这几个按键为GPG11、GPG7、GPG6、GPG5、GPG3、GPG0。GPGDAT11、GPGDAT7等等依次对应六个按键。我们着重关注的是寄存器的输入状态和输出状态。如前所述,将G

6、PBCON的第14位设置为0,第13位设置为1,就表示LED2被设置为输出状态。此时,如果GPBDAT的第7个bit(GPBDAT6)为0(低电平),那么LED2就被点亮,如果GPBDAT6为1(高电平),那么LED2就处于熄灭状态。将GPGCON11的值设置为00(也就是令右上角按键输入状态),则如果这个按键按下,GPGDAT11的值为0(低电平),如果未被按下,则GPGDAT11的值为1(高电平)。则这里有一个疑问是,LED的输入状态以及按键的输出状态应该是不会在任何场景出现的,应该是没有任何用处的吧。有了上面这些基础,我们就可以很容易地写出按键控制

7、LED点亮或熄灭的程序了。我写的测试的程序可在这里下载,很简单,有很清楚的注释说明,就不在这里解释了。这个头文件在今后的程序中也可以复用。程序写完了,怎么跑在没有操作系统的开发板上?没有操作系统也就是说我们目前没有一个可以自启动并被引导的正常运转在cpu和内存的程序,所以我们要自己做这些–引导我们的程序运转起来。我们要用的方法是,将程序烧入Nandflash,然后使用从Nandflash启动来直接运行我们的程序。使用Nandflash时,s3c2440会将Nandflash的最开始4k的内容加载到SDRAM内存中自动运行,而我们目前的小程序的可运行bin

8、格式的size远远未到4K的大小,所以,我们就将程序放入Nandflash的开始

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。