Not applicable
Dec 22, 2016
10:46 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dec 22, 2016
10:46 PM
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 !
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 !
- Tags:
- IFX
1 Reply
Oct 09, 2020
04:19 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 09, 2020
04:19 AM
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.
I added "IfxCpu_enableInterrupts();" in all ISRs.