Hello,
I'm having a difficult time looking for the reason of strange behaviour of an ISR for the TMS320F2812.
The develpment enviroment is CCSv5 with default compiler options.
It was all working nicely before adding a call to a C function. I've taken care of having the SP even aligned, but the compiler manual warns about function boundary alignment too... what does it mean?
Also, If save the ST0/ST1 registers and restore them after the C function call, I have strange behaviour in the application:
PUSH ST0
PUSH ST1
call c function
POP ST1
POP ST0
The strange thing is that, if I do the saving/restoring after the call, everything seems working:
call c function
PUSH ST0
PUSH ST1
POP ST1
POP ST0
What am I missing? The manual mentions pipeline flushing when restoring ST1. What does it mean?
Thank you.
Best regards.