Other Parts Discussed in Thread: RM48L952, HALCOGEN
Hello,
I'm still working on the irqDispatcher for nested interrupts and I did use the code published by Christian Hegert in this post: http://e2e.ti.com/support/microcontrollers/hercules/f/766/t/210653.aspx?pi239031349=3
I'm working with the target RM48L952. Some IRQ should be nested, one FIQ will run our fastest ISR.
I do encounter problems on power on.
If I start my target by power on, the nERROR pin is set (or if FIQ are enabled the esmGroup2 notification is called). Reason Group2 INTOFFH = 35, means CCMR4 compare.
If I soft reset my target afterwards, the error is not triggered.
I searched for the reason with help of a endless loop and found the line which does lead to this error. The error occurs at the first processing of a IRQ.
Found in irqDispatcher_a.asm
In there the system mode LR must be saved, which is done right after the stack alignment:
PUSH {R3, LR} ; Put Stack adjustment and System Mode LR on Stack
For tests I did replace this command by 2 commands (I modified corresponding the POP cmd) :
PUSH {R3} ; Put Stack adjustment on Stack
PUSH {LR} ; Put System Mode LR on Stack
and then I did set once an endless loop before the PUSH LR and once after the PUSH LR
Test A:
PUSH {R3} ; Put Stack adjustment on Stack
_stopLoop:
B _stopLoop
PUSH {LR} ; Put System Mode LR on Stack
Test B:
PUSH {R3} ; Put Stack adjustment on Stack
PUSH {LR} ; Put System Mode LR on Stack
_stopLoop:
B _stopLoop
Results:
Test A no esm error
Test B esm error on power on (CCMR4 compare)
Any ideas?
Regards,
Roger