TI中文支持网
TI专业的中文技术问题搜集分享网站

OMAP-L138 DSP侧中断嵌套问题

TI工程师你们好!最近使用OMAP-L138编程,在DSP侧启动了两个中断,一个超级中断,一个普通外部中断,外部中断负载较重,两个中断中都大量使用了寄存器局部变量,程序中同时存在一个主循环 。发现当主循环运算量较大时,会出现运算出错的情况。主循环计算一段内存的校验和,打印出校验和出错,用同样的算法再计算一遍,校验和又能恢复正确。如果把中断改成两个普通的外部中断,长时间跑没有发现类似问题。请问DSP侧中断嵌套这块有需要特殊注意的地方吗?谢谢。

Shine:

请问什么叫超级中断?什么叫普通中断?中断嵌套示例的话可以参考下面的帖子。
e2echina.ti.com/…/444670

user4770590:

回复 Shine:

您好老师,超级中断是指NMI中断,普通中断是非NMI中断的外部中断。这两天调试遇到一个疑问,对代码进行反汇编时发现,中断进入时保存现场压栈的寄存器是A0-A9A16-A31B0-B9 B16-B31,还原现场出栈时也是这些,没有对A10-A15B10-B15进行保存,保存现场是编译器自动保存的,这样是不是有问题?查看主循环中有用到A11 A12等寄存器。

Shine:

回复 user4770590:

编译器会保存函数中用到的所有的寄存器,您的代码中会用到哪些寄存器,可以查看编译器手册8.3 Register Conventions和8.7.2 Saving Registers During Interrupts
www.ti.com/…/sprui04c.pdf

赞(0)
未经允许不得转载:TI中文支持网 » OMAP-L138 DSP侧中断嵌套问题
分享到: 更多 (0)