打印

STM32中断问题请求支援

[复制链接]
1843|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
雾里|  楼主 | 2010-4-20 11:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在启动代码里面有这条 LDR     PC,IRQ_Addr        就是说当外部产生中断后都执行这条语句,问题来了:
STM32总共有几十个外部中断,都会跳转到这个中断,怎样确定是哪个中断产生了作用呢?
当然,有中断向量表:
const intvec_elem __vector_table[] =
{
  { .__ptr = __sfe( "CSTACK" ) },
  __iar_program_start,
  NMIException,
  HardFaultException,
.....
  USART2_IRQHandler,
  USART3_IRQHandler,
  EXTI15_10_IRQHandler,
  RTCAlarm_IRQHandler,
  USBWakeUp_IRQHandler,
};

问题是LDR     PC,IRQ_Addr怎样和下面这个向量表关联起来的啊?请高手解答,谢谢

相关帖子

沙发
wangxuefan1220| | 2010-4-20 16:06 | 只看该作者
STM32的我不是很清楚
但是我知道LPC2103的IRQ中断是让它跳转到一个固定的地址里,这个地址在VIC里面

使用特权

评论回复
板凳
hgjinwei| | 2010-4-20 18:27 | 只看该作者
可以很不负责任地告诉楼主,启动代码里是不需要“LDR     PC,IRQ_Addr”的。

STM32 采用Cortex - M3构架,NVIC中断系统使用中断矢量表。
发生中断时硬件自动将矢量表中对应的中断服务程序入口地址装载到PC,从而直接进入中断服务程序。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

153

帖子

0

粉丝