[ZLG-ARM] 关于中断的问题请教大家

[复制链接]
 楼主| zzyszl 发表于 2007-10-19 09:08 | 显示全部楼层 |阅读模式
<font color=#C000FF>前提:用的是&nbsp;ADS1.2&nbsp;编译器。<br /><br />在&nbsp;ARM7&nbsp;处理器中,定时器中断是如何发生的,和51单片机有什么区别?因为51直接有各中断向量表,只要在中断的入口地址处写一条跳转指令即可。而ARM只有异常向量地址入口。是不是ARM中,定时器中断在用汇编写时必须用查询方式来做。是不是象下面这样做的?<br />;===============================<br />&nbsp;&nbsp;&nbsp;&nbsp;;//异常入口地址<br />&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;PC,Rest_Addr<br />&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;PC,UndefinedAddr<br />&nbsp;&nbsp;&nbsp;&nbsp;.<br />&nbsp;&nbsp;&nbsp;&nbsp;.<br />&nbsp;&nbsp;&nbsp;&nbsp;.<br />&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;PC,<font color=#FF0080>IRQ_Addr<br /></font>&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;PC,FIQ_Addr<br />;===============================<br />&nbsp;&nbsp;&nbsp;&nbsp;;异常处理程序<br /><font color=#FF0080>IRQ_Addr</font><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(是定时器0中断)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;goto:定时器0子程序。<br />&nbsp;&nbsp;&nbsp;&nbsp;if(是定时器1中断)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;goto:定时器1子程序。<br />&nbsp;&nbsp;&nbsp;&nbsp;if(是UARTO中断)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;goto:UARTO子程序。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />;===============================</font>
ppz2005 发表于 2007-10-19 15:11 | 显示全部楼层

arm和51也类似

按说你的这个程序并没问题,可是对irq来说就只有这么一个入口,不太好用,但arm核就是这样的。所以一般的实现中,厂家都加了个vic中断管理器,可以管理更多的中断,所以一般来说除非你的系统只用一个中断,否则应该设置一下vic控制器,及其中的各个中断向量,这样就可以用向量中断的方法来做中断处理了。51中其实已经加了中断管理功能了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

37

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部