ARM裸机程序设计
文章平均质量分 78
阿龍
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
裸机程序按键中断问题,求解
今天做了一个按键中断程序,主要实现功能是:按下k1键,LED全亮;按下k2键,LED计数;按下k3键,流水灯;按下k4键,LED全灭。基本功能能实现,但有两个问题: 第一,当我按下k2时,必须得等到计数子程序完成之后才能进行下一次按键,如果在计数程序进行当中,按下k3键,并不能打断计数程序执行,必须等到计数完成之后,才会响应流水灯程序。但我想实现,只要一有按键按下,立马去执行对应程序,不知道能否实现。但由于进入IRQ中断之后,CPSR的I(不是第一位)位会被置1,也就是屏蔽掉IRQ中断。如原创 2011-06-02 21:47:00 · 1030 阅读 · 0 评论 -
ARM裸机程序设计—LCD程序设计
LCD裸机驱动程序总结:LCD裸机驱动程序流程:一、LCD初始化: 1、端口初始化:设置GPC和GPD为LCD输出端口模式 2、显示模式初始化: LCDCON1:选择BBP(位每像素)模式、选择显示模式、决定VLCK频率 LCDCON2:bit[31:24](1:VPBD)、bit[23:14](320-1:行数)、bit[13:6](5:VFPD)、bit[5:0](1:VSPW) LCDCON3:bit[25:19](36:HB原创 2011-06-02 21:46:00 · 942 阅读 · 0 评论 -
ARM裸机程序设计—触摸屏程序设计
触摸屏程序设计总结:触摸屏工作流程以及程序设计流程:一、触摸屏初始化: 1、设置触摸屏接口为中断等待模式(ADCTSC寄存器),等待触摸笔按下 2、清除源挂起寄存器(SRCPND)、中断挂起寄存器(INTPND)、子源挂起寄存器(SUBSRCPND) 3、程序入口函数,关中断屏蔽寄存器和子中断屏蔽寄存器(INTMSK,INTSUBMSK),中断模式和中断优先级默认即可二、触摸屏中断服务子程序: 一)触摸笔按下中断 4、如果中断发生,设置x,y原创 2011-06-02 21:44:00 · 1501 阅读 · 0 评论 -
ARM裸机程序设计—ADC驱动程序设计
<br /> 对ADC裸机程序设计做个总结:<br /> 首先是程序设计流程:<br /> 一、时钟频率设置<br /> 二、ADC初始化<br /> 1、转换通道选择(ADCCON寄存器中的[5:3]位)<br /> 2、转换频率设置(主要是设置预分频器的值)(ADCCON寄存器中的[13:6]位)<br /> 3、预分频器使能(ADCCON寄存器中的第14位)<br /> 三、读取AD转换值<br /> 1、转换启动(ADCCON寄存器中的第0位)<br /> 2、原创 2011-06-02 21:42:00 · 1255 阅读 · 0 评论 -
ARM裸机程序设计—按键中断程序设计
<br />按键程序设计总结:<br /> 中断处理框图:<br /><br />首先是按键中断处理过程:<br /> 1、中断控制器汇集各类外设发出的中断信号,然后告诉CPU<br /> 2、CPU保存当前程序的运行环境(各个寄存器等),调用中断服务程序(ISR,Interrupt Service Routine)<br /> 3、在ISR中通过读中断控制器、外设的相关寄存器来识别这是哪个中断,并进行相应的处理<br /> 4、清楚中断:通过读写中断控制器和外设的相关寄存器来实现<br /> 5、最好恢复原创 2011-06-02 21:39:00 · 3311 阅读 · 0 评论 -
套用国嵌例程的2440init.s文件需要注意的事项
<br /> 今天搞那个启动代码,以前不知道怎么用国嵌例程中的启动代码,复制过去老是出错,感觉关联性太大了,要复制好多文件才行,但是又不想搞那么多。最开始出现了两个问题,<br />1、问题如下<br /><br />说是少了两个函数,最后在国嵌例程中找到了找到了2440slib.h文件,在这个文件找到这两个函数声明,然后选择函数点击右键,选择go to function definition of MMU_SetFastBusMode这一项,就可以跳转到函数,这个函数在2440slib.s文件中,所以就需原创 2011-06-03 01:17:00 · 1021 阅读 · 0 评论 -
mini2440之UART简单通信
<br /> 最近一直在弄UART,书和资料都不知道看了多少遍了,真怀疑是自己记忆力不好,搞了那么久都从来没把程序运行正确过,今天终于成功了。虽然并不是所有的程序都是自己写的,但对这个UART总算有点明白了,看开发板送的那个程序,虽然弄懂了是怎么回事,但是有很多地方始终不能理解,想从上面改也是相当的有难度,所以一直再找一个简洁版的程序,让自己明白到底UART要设置那些寄存器才能正常通讯,我觉得这一点也是相当重要的,从简单到复杂,那些培训搞的那些程序虽然功能齐全,但不利于我们学习,太太太复杂了。想从上面改,原创 2011-06-03 01:17:00 · 1055 阅读 · 0 评论 -
ARM外部中断控制寄存器EXTINTn设置方法
<br />把前面的那些中断基本搞懂之后,突然出现了这个外部中断控制寄存器,找了好多资料都只是泛泛而谈,根本不知道具体是干什么的,搞的我一头雾水,后来知道了这个是设置EINT0~EINT23的触发方式的,但又没讲怎么去设置。就连芯片的数据手册上面都没有,晕菜了。后来终于在网上收到了如何设置这几个寄存器。<br />EXTINT[2~0]:设置24个外部中断源的中断信号的触发类型。<br />EXTINT0:设置EINT0~EINT7的中断触发类型。<br /> bit0~bit2:设置EINT原创 2011-06-03 01:15:00 · 2173 阅读 · 0 评论 -
2440-中断寄存器详解
<br />刚开始时一直搞不懂EINTPEND到底是怎么回事,莫名奇妙的就出来这个,并且在中断8中还用到了,本来以前看手册的时候感觉自己还懂了,结果一上程序就莫名其妙了,那几个寄存器把我搞晕了,清除的时候也搞不懂到底是置1还是置0。使我很无语,后来在网上找了一下,终于找到了一篇文章,对中断寄存器的分析和解释,这下总算比较明白了是怎么回事了,下面看文章·······<br />这是一小段程序:<br />static void __irq key_handler(void)<br />{<br /> i转载 2011-06-03 01:14:00 · 1128 阅读 · 0 评论 -
2440中UART的使用以及相关函数详解
<br />一、UART原理及UART部件使用方法<br />1、UART原理<br />通用异步收发器UART,用来传输串行数据:<br /> 发送数据时,CPU将并行数据写入UART,UART按照一定格式在TxD线上串行发出;<br /> 接收数据时,UART检测到RxD线上的信号,将串行收集放到缓冲区中,CPU即可读取UART获得的这些数据。<br />UART最精简的连线只有3根电线,TxD用于发送,RxD用于接收,Gnd用于提供参考电平。TxD和RxD数据线以“位”为最转载 2011-06-03 01:15:00 · 1077 阅读 · 0 评论
分享