I have come across a problem that I have not been able to solve.
We are using an in-line assembly routine within an ISR written in C, that is executed from RAM. In the debugger, the assembly code works fine, but running standalone from flash, some instructions are perhaps causing some kind of exception that stops the application. I don’t know why the code runs under the debugger but not in standalone mode. Maybe it is an exception that is not handled in standalone mode?
These are the instructions that stop the application (they are spread out through the routine, and are not contiguous):
MOVL XT,@8+8
MOVDL XT,@8+6
MOVL XT,@8+2
QMPYL ACC,XT,*XAR7++
MOVDL XT,@8+0
The block of data accessed is at address 0x0000A040. Any help would be greatly appreciated.