The Interrupt nesting for GPT12 and CAN has a problem in TC275

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
I have a problem about the Interrupt nesting for GPT12 and CAN , i enable the Interrupt of GPT12 , and the T2 , T3 , T4 Timers of GPT12 can work normally ,
I also enable the Interrupt of CAN for receive Interrupt , it can receive data normally ,
They work alone is normal , but they can not work at the same time ,
If the GPT12 is working , the CAN module receive a data and trigger the receive interrupt , the program will be died , it will stop work ,
When i debug , it will enter this :
void IfxCpu_Trap_busError(uint32 tin)
{
__svlcx();
trapWatch = IfxCpu_Trap_extractTrapInfo(IfxCpu_Trap_Class_bus, tin);
IFX_CFG_CPU_TRAP_TSR_HOOK(trapWatch);
__debug();
__rslcx();
__asm("rfe");
}
The Interrupt priority of CAN and GPT12 is different , the Interrupt priority of CAN0 is 2 , the Interrupt priority of T3 is 10 , T2 is 11 , T4 is 12 ;
Who can help me ? Thank you !
0 Likes
1 Reply
User19905
Level 1
Level 1
I too had this problem.. After I provided high priority to the CAN it started working. But to be honest I too dont know how to really tackle this issue.
I added "IfxCpu_enableInterrupts();" in all ISRs.
0 Likes