Debugging exceptions is the same process regardless of type, but often it is helpful to understand the difference between the most common types of exceptions:

  • Raise Exception: This is most often sourced from a handled exception where the programmer has anticipated a problem and handling the exception for you. Often these are not, critical errors (it depends).
  • Prefetch Aborts:  A function of the pipelining nature of the ARM processor and will occur whenever the processor encounters an invalid INSTRUCTION.
  • Data Aborts:  will occur when the processor encounters invalid DATA such as loading a register with the contents of an invalid memory address.

Please note that the above explanations are greatly simplified and the ARM reference manual is the official standard. Please also note that the above doesn't really help in identifying what when wrong - that will be the topic of future blog entries - so stay tuned!