We have all been in the same situation. Your excellent code crash the CPU under mysterious circumstances. You have spent days trying to find the bug, until your eyes are bleeding. Still no joy. And you write perfect code anyway, so nothing could be wrong with the code. Right? Still, your system sometimes crash. How annoying.
Single-stepping may not reveal the bug; perhaps a sensor sometimes returns an out-of-range error, or a pointer error somewhere else overwrite memory, thus causing a corrupt runtime environment. Don't spend days trying to find the cause! Learn to use the Cortex-M hardfault crash analyzis capabilities - learn how in this free whitepaper!
Sometimes during development of embedded system applications, statement execution will force the microcontroller into a fault state, and cause the code to vector to one of the system exception handlers. Some typical reasons are division by zero, access of nonexistent or illegal memory through rogue pointers, bus fault errors, or usage fault errors.
Finding the cause and location of such system crashes can be very difficult and time consuming. The ARM® Cortex™-M processor architecture has built-in capabilities that enable advanced debuggers to provide assistance in these situations. By using the methods and tools outlined in this white paper, the root cause and location of system crashes can be easily identified in seconds, rather than hours.
Read our whitepaper: