现象 :
我先用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_代表的意义是什么?哪些原因会导致进入这个函数(有助于分析这个问题)?
Susan Yang:
很抱歉,我现在手边没有TMS570LS0914的板子,准备申请中
若是您比较紧急的话,建议您去英文版E2E发帖,会有BU为您解答
e2e.ti.com/…/312
我明天也会找类似的板子先测试一下