STM32中断问题请求支援

[复制链接]
2711|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

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