ARM: HOW TO ANALYZE A DATA ABORT EXCEPTION
Information in this article applies to:
My application for an ARM7 or ARM9 based microcontroller does not work. When I run it in the simulator or with my JTAG debugger (ULINK), I see that the program counter (R15) jumps to the label DAbt_Handler?A. What does that mean? How can I find the location where my application crashes?
This is the default Data Abort exception handler. Your application is trying to read or write an illegal memory location. You can calculate the illegal memory location using by subtracting 8 from the value in R14 (link register). Subtracting 8 adjusts for the instruction queue giving you the address of the instruction that caused this exception. For example:
Note: for Cortex-M devices, aborts and exceptions work differently. See Application Note 209: Using Cortex-M3/M4/M7 Fault Exceptions for details.
The following Discussion Forum threads may provide information related to this topic.
Last Reviewed: Wednesday, December 19, 2018
of your data.