我使用了GIOA0的外部中断和CAN总线中断,使用默认优先级,GlOA0为9通道,CAN为16通道,在实际使用GIOA0的中断无法打断CAN的中断,不知何原因?还有实规中断嵌套需要设置哪个寄存器吗?请指导,谢谢!
zhangjie zhangjie:
回复 Renton:
你好,可是我的系统设计中必须GIOA0的这个中断优先级最高,如果我使用FIQ可以吗,其余中断使用IRQ?还有我在其它资料上看到CORTEX-M3核的ARM架构都支持中断嵌套,CORTEX-R的ARM架构是目前还不支持还是本来这个硬件设计就没有考虑中断嵌套?
Renton:
回复 zhangjie zhangjie:
Hi Zhangjie,
GIOA0作为FIQ应该没有问题的。
但是我不确认FIQ是否能够打断IRQ的操作。(应该可以,但是最好还是测试一下。)
M3支持8级嵌套,R默认不支持,是CPU架构的区别。
您可以查看ARM官方的说明:
infocenter.arm.com/…/index.jsp
个人觉得,Cortex-R实际上是给用户留出了无限嵌套的可能的(只要RAM够大),只不过这个操作需要用户花一些时间和精力自行完成,没有硬件辅助。
从某种意义上来说,这种架构更灵活。
zhangjie zhangjie:
回复 Renton:
我将GIOA0的中断改为了FIQ中断响应是正确的,CAN中断还是IRQ,可是发现只运行IRQ时是可以的,只运行FIQ可以,如果2个中断都存在,程序运行就出错了,不知道是什么原因
zhangjie zhangjie:
回复 zhangjie zhangjie:
可否提供一个中断嵌套的例子,我在当前中断中打开'I'位,程序运行不正常,请给个嵌套的例子,谢谢!
zhangjie zhangjie:
回复 Renton:
我说的异常就是当fiq和irq同时有时,程序会跑飞至取址中止的入口,就是两个中断不能同时有.还有一个关于tms570ls20206的can总线中,为什么设置了屏蔽寄存器,可是还是所有的CAN的ID都产生中断,且中断清不掉.关于验收滤波器这方面请赐教!谢谢!
Renton:
回复 zhangjie zhangjie:
Hi Zhangjie,
您指的是Prefetch Abort吗?
使用前面的例子还有这个问题吗?
如果您使用HALCoGen生成的驱动代码的话,最好不要关闭FPU的支持,貌似关闭后,CPU工作会有点不正常,可能生成的驱动代码有点问题。
关于CAN总线的问题,麻烦您再开个帖子,方便以后的查询,多谢多谢~
zhangjie zhangjie:
回复 Renton:
我想使用IRQ完成中断嵌套,使用了CAN总线中断和GIOA0的中断,想实现在CAN总线和GIOA0都有中断时,GIoA0的可以打断CAN的中断,GI0A0的优先级高,请给个例子,谢谢
TI中文支持网

