DM6437等dsp64x+的复位中断机制。

今天发现,DM6437的warm reset,对应的到复位中断时可以发现,此处的中断复位服务程序并不会起到作用。为何,因为DM6437一旦发生RESET引脚拉低就会出现ISTP复位到默认值(0x00100000)。

涉及到CPU Core核心中断寄存器如下,属于其的控制寄存器组,不同于一般的外设寄存器,有CPU负责,和A,B寄存器组类似。

IER(中断使能寄存器) 
IFR(中断标志寄存器) 
ISR(中断设置寄存器) 
ICR(中断清除寄存器) 
ISTP(中断向量表起始地址寄存器)中断向量程序的地址可以通过 ISTP寄存器进行重新映射 
 
按道理,复位后,程序该从_c_int00再到main执行,其实不然,对于DM6437来说,启动从boot模式下面进行。一旦Warm reset。就从0x00100000的RBL所在处开始执行,表明dsp从新运行了一次。
理想状况下是,dsp复位,产生的复位中断在中断向量表IST中,能再次跳入到main函数去执行,而抛弃掉前面的RBL和SBL。
 
故依次,总结出,DM6437的复位中断可以不配置任何的服务程序。因为当对ISTP进行relocate后,一旦复位ISTP的ISTB回归到0x00100000时,即找不到复位中断的服务程序,也就没有意义。要不就是不进行relocate,但这样没有意义,因为复位了都是重新开始RBL执行的,这个默认位置是不允许建立向量表的,是BOOT ROM区域。所以一句话,不需要初始化复位的中断服务程序,向量表可以relocate到任意位置。其他中断就可以正常工作啦.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值