Cortex-M3: improved core exception handling
commitd91941d5a01ca0b9d43571edc03ba18741076cca
authorDavid Brownell <dbrownell@users.sourceforge.net>
Wed, 13 Jan 2010 11:16:37 +0000 (13 03:16 -0800)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Wed, 13 Jan 2010 11:17:23 +0000 (13 03:17 -0800)
tree256234bf00622a98771f3d0634c196a4082356a9
parentb8e930e3bfc78f4a0582edb8b7cec44b5c9f4cad
Cortex-M3: improved core exception handling

This updates three aspects of debugger/exception interactions:

 - Save the user's "vector_catch" setting, and restore it after reset.
   Previously, it was obliterated (rather annoyingly) each time.

 - Don't catch BusFault and HardFault exceptions unless the user says
   to do so.  Target firmware may need to handle them.

 - Don't modify SHCSR to prevent escalating BusFault to HardFault.
   Target firmware may expect to handle it as a HardFault.

Those simplifications fix several bugs.  In one annoying case, OpenOCD
would cause the target to lock up on ome faults which triggered after
the debugger disconnected.

NOTE:  a known remaining issue is that OpenOCD can still leave DEMCR
set after an otherwise-clean OpenOCD shutdown.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
NEWS
src/target/armv7m.h
src/target/cortex_m3.c