This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS570LS0914中给临界代码加入中断锁后进入_esmCcmErrorsClear_,然后进入underEntry?

Other Parts Discussed in Thread: HALCOGEN, TMS570LS0914

现象 :

我先用HALCoGen配置了RTI Compare0(Period=1000ms)和RTI Compare1(Period=100us),并配置为IRQ。然后生成代码。

然后在生成的定时器0和定时器1中断函数里做如下操作:

关中断和开中断的原型如下(在sys_core.asm中):

发现当定时器1里面的计数器Time1_Cnt=10002的时候,再单步执行,当执行完912行的时候会进入_esmCcmErrorsClear_,如下图所示:

然后再运行就进入undefEntry:

问题:(困扰多日,希望TI一定耐心帮我解决一下这个问题)

Q1:这个谁能帮我解释一下这个现象,是那两句关中断和开中断的语句用错了吗(中断锁),我的本意是想执行保护代码的时候不能被其他中断打断,所以加了关中断这个操作,但是一执行就进入undefEntry,实在找不到原因?

Q2:如果有人觉得我这样的用法是错误的,希望能给出正确的用法(因为项目中一定要使用中断锁这个机制)?


Q3:还有就是进入_esmCcmErrorsClear_代表的意义是什么?哪些原因会导致进入这个函数(有助于分析这个问题)?