Question
I receive the following message when loading or running a DXE, what is the cause and how do I fix this?
Target halted due to software breakpoint but no breakpoint found at address: 0x........
Possible reasons are:
1.An embedded breakpoint (EMUEXCPT instruction) in the code
2.A breakpoint is placed at the last instruction of a do() loop
===============================
Answer
The error message "Target halted due to software breakpoint but no breakpoint found at address:" occurs when the Emulator detects that the DSP has halted, but there is no clear reason (such as a breakpoint) to explain the stall of the processor.
This can be caused by a breakpoint being placed in a delay slot of a branch - perhaps in an ISR, where the ISR is returning to the code indicating the false breakpoint. It could also be caused by an embedded software breakpoint instruction, which can be inserted by exception handlers and other Run Time Libraries, such as in the case of VDK Kernel Panic.
Another reason for seeing this message is when a breakpoint is placed in the last instruction of an assembly loop. In that case it's hard for the emulator to determine the exact location of the break because the sequencer has continued past the break instruction.
Checking the address given by the error should help to determine the cause and to debug the issue.
I would also recommend checking under 'Settings: Breakpoints', to see if there are any non-default breakpoints set that may be invalid. You can try disabling all breakpoints and loading your DXE to determine whether it is a simple case of a rogue breakpoint remaining set when it should not be.
If your target is a custom board, you may also find this indicates that External Memory is incorrectly configured. Refer to this FAQ for instructions on correctly configuring external memory for a custom board debug session:FAQ: My application behaves incorrectly when using SDRAM.