*** UNHANDLED INTERRUPT ***
Vector #: 2 0x2
Offset : 8 0x8
Task Id: 0x10006 Td_ptr 0x2000a58c Stack Frame: 0x2000aff8
Interrupt nesting level: 1 PC: 0x00000518 SR: 0x2604
Could someone explain what is the meaning of those parameters? This message is comming when calling .cgi functions extensively.
Vector number is the index into HW exception/interrupt table (2 == Access Error ... misaligned memory access).
Offset is in bytes from the beginning of that table (=> 4 byte vectors).
Task Id and ptr is MQX identifier and pointer to the task where this interrupt occured (you can find more information in CW's TAD).
Stack Frame is pointer to task's stack.
Interrupt Nesting Level shows how many interrupt routines currently interrupt each other.
PC is actual HW program counter and SR is actual HW status register state.
PetrM
Thanks for the answer.
Could you explan a little about the meaning of misaligned memory access or point me in the right direction to learn about this errors?
Sorry for confusion, it's not about misaligned access but basically it refers to execution of not valid instruction, which mostly occurs when program execution loses its way after some fatal error.
You can read more about it in any ColdFire reference manual, section ColdFire core, search for Exception Vector or Access Error.
PetrM
Okay, I have read the RM for MCF52259 but I would like to know about the origin of this kind of errors, the manual deals mainly with the way the microcontroller process them.
Is there a way to find the source of the problem (or what are the most common mistakes that lead to access errors?) ??
or are these errors inevitable?
Well, I would check the MQX state using TAD for any stack overflows or memory corruptions, free memory left, actual task states and so on.
You can also try to eliminate step by step the code which is not directly related to the cgi functionality to learn the cause.
PetrM