openocd/src/target
David Brownell d91941d5a0 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>
2010-01-13 03:17:23 -08:00
..
ecos - reverted some of the changes that possibly broke arm926ejs. Waiting 2008-04-04 13:47:38 +00:00
xscale Remove annoying end-of-line whitespace from most src/* 2009-09-21 18:40:55 +00:00
Makefile.am Packaging fix 2009-12-21 12:31:12 -08:00
algorithm.c change #include "binarybuffer.h" to <helper/binarybuffer.h> 2009-12-03 04:22:17 -08:00
algorithm.h target: don't implicitly include "algorithm.h" 2009-11-16 00:35:05 -08:00
arm.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
arm7_9_common.c arm7/9: enable check that DCC downloads have been enabled 2010-01-13 12:00:02 +01:00
arm7_9_common.h arm7/9: add fn to check if dcc downloads have been enabled 2010-01-13 12:00:02 +01:00
arm7tdmi.c arm7/9: enable check that DCC downloads have been enabled 2010-01-13 12:00:02 +01:00
arm7tdmi.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
arm9tdmi.c arm7/9: enable check that DCC downloads have been enabled 2010-01-13 12:00:02 +01:00
arm9tdmi.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
arm11.c ARM11: help/usage updates 2010-01-07 16:21:24 -08:00
arm11.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
arm11_dbgtap.c ARM11: avoid pointless status returns 2009-12-11 20:55:12 -08:00
arm11_dbgtap.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
arm720t.c arm7/9: enable check that DCC downloads have been enabled 2010-01-13 12:00:02 +01:00
arm720t.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
arm920t.c arm7/9: enable check that DCC downloads have been enabled 2010-01-13 12:00:02 +01:00
arm920t.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
arm926ejs.c arm7/9: enable check that DCC downloads have been enabled 2010-01-13 12:00:02 +01:00
arm926ejs.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
arm966e.c arm7/9: enable check that DCC downloads have been enabled 2010-01-13 12:00:02 +01:00
arm966e.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
arm_adi_v5.c ARMv7: help/usage updates 2010-01-07 16:18:01 -08:00
arm_adi_v5.h ARM: add #defines for JTAG ack codes 2010-01-05 13:03:27 -08:00
arm_disassembler.c ARM: bugfix for "movt" disassembly 2010-01-12 12:40:39 -08:00
arm_disassembler.h change #include "types.h" to <helper/types.h> 2009-12-03 04:22:52 -08:00
arm_dpm.c ARM DPM: support updating HW breakpoints 2009-12-11 15:26:10 -08:00
arm_dpm.h ARM DPM: support updating HW breakpoints 2009-12-11 15:26:10 -08:00
arm_jtag.c embedded hosts: optimize common code path for core arm operations 2009-12-11 09:17:23 +01:00
arm_jtag.h embedded hosts: optimize common code path for core arm operations 2009-12-11 09:17:23 +01:00
arm_opcodes.h ARM: update arm_opcodes.h copyright 2009-12-09 21:43:23 -08:00
arm_semihosting.c ARM: use <target/arm.h> not armv4_5.h 2009-12-07 14:57:44 -08:00
arm_semihosting.h ARM: remove semihosting globals 2009-12-04 16:51:48 -08:00
arm_simulator.c ARM: use <target/arm.h> not armv4_5.h 2009-12-07 14:57:44 -08:00
arm_simulator.h ARM: rename armv4_5_state_* as arm_state_* 2009-12-04 19:39:25 -08:00
armv4_5.c misc ARM help/usage updates 2010-01-07 16:41:42 -08:00
armv4_5.h ARM: use <target/arm.h> not armv4_5.h 2009-12-07 14:57:44 -08:00
armv4_5_cache.c change #include "log.h" to <helper/log.h> 2009-12-03 04:22:52 -08:00
armv4_5_cache.h change #include "types.h" to <helper/types.h> 2009-12-03 04:22:52 -08:00
armv4_5_mmu.c change #include "log.h" to <helper/log.h> 2009-12-03 04:22:52 -08:00
armv4_5_mmu.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
armv7a.c ARMv7: help/usage updates 2010-01-07 16:18:01 -08:00
armv7a.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
armv7m.c ARMv7: help/usage updates 2010-01-07 16:18:01 -08:00
armv7m.h Cortex-M3: improved core exception handling 2010-01-13 03:17:23 -08:00
avrt.c use ARRAY_SIZE macro 2009-11-25 10:32:00 -08:00
avrt.h change #include "jtag.h" to <jtag/jtag.h> 2009-12-03 04:24:33 -08:00
breakpoints.c change #include "log.h" to <helper/log.h> 2009-12-03 04:22:52 -08:00
breakpoints.h change #include "types.h" to <helper/types.h> 2009-12-03 04:22:52 -08:00
cortex_a8.c ARMv7: help/usage updates 2010-01-07 16:18:01 -08:00
cortex_a8.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
cortex_m3.c Cortex-M3: improved core exception handling 2010-01-13 03:17:23 -08:00
cortex_m3.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
dsp563xx.c dsp563xx: cygwin build fixes 2009-12-18 03:08:49 -08:00
dsp563xx.h target: add basic dsp563xx support 2009-12-15 18:38:52 +01:00
dsp563xx_once.c target: add basic dsp563xx support 2009-12-15 18:38:52 +01:00
dsp563xx_once.h target: add basic dsp563xx support 2009-12-15 18:38:52 +01:00
embeddedice.c Comment and doxygen fixes 2009-12-09 10:25:52 -08:00
embeddedice.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
etb.c ARM ETM/ETB/trace: help/usage updates 2010-01-07 15:22:41 -08:00
etb.h ETM trigger_percent becomes an ETB command 2009-12-19 13:06:46 -08:00
etm.c ARM ETM/ETB/trace: help/usage updates 2010-01-07 15:22:41 -08:00
etm.h ETM: more ETM_CTRL bit cleanup 2009-12-19 13:07:26 -08:00
etm_dummy.c ARM ETM/ETB/trace: help/usage updates 2010-01-07 15:22:41 -08:00
etm_dummy.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
fa526.c arm7/9: enable check that DCC downloads have been enabled 2010-01-13 12:00:02 +01:00
feroceon.c ARM: rename some generic routines 2009-12-07 14:57:44 -08:00
image.c change #include "log.h" to <helper/log.h> 2009-12-03 04:22:52 -08:00
image.h change #include "fileio.h" to <helper/fileio.h> 2009-12-03 04:22:51 -08:00
mips32.c MIPS: update arch_info access to match other targets 2010-01-09 13:37:02 +00:00
mips32.h MIPS: update arch_info access to match other targets 2010-01-09 13:37:02 +00:00
mips32_dmaacc.c mips_ejtag_t -> struct mips_ejtag 2009-11-13 11:58:11 -08:00
mips32_dmaacc.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
mips32_pracc.c MIPS: update arch_info access to match other targets 2010-01-09 13:37:02 +00:00
mips32_pracc.h MIPS: whitespace cleanup 2010-01-07 20:56:07 +00:00
mips_ejtag.c MIPS: update arch_info access to match other targets 2010-01-09 13:37:02 +00:00
mips_ejtag.h MIPS: update arch_info access to match other targets 2010-01-09 13:37:02 +00:00
mips_m4k.c MIPS: update arch_info access to match other targets 2010-01-09 13:37:02 +00:00
mips_m4k.h MIPS: update arch_info access to match other targets 2010-01-09 13:37:02 +00:00
oocd_trace.c ARM ETM/ETB/trace: help/usage updates 2010-01-07 15:22:41 -08:00
oocd_trace.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00
register.c change #include "types.h" to <helper/types.h> 2009-12-03 04:22:52 -08:00
register.h target: make register flags "bool" 2009-11-22 10:27:29 -08:00
startup.tcl reset: better error messages 2010-01-11 12:58:06 +01:00
target.c target: add check_reset hook 2010-01-13 12:00:02 +01:00
target.h target: add check_reset hook 2010-01-13 12:00:02 +01:00
target_request.c target misc: help/usage updates 2010-01-07 15:05:26 -08:00
target_request.h #include "target.h" less wildly 2009-11-16 00:35:24 -08:00
target_type.h target: add check_reset hook 2010-01-13 12:00:02 +01:00
testee.c target: further shrink Jim-awareness 2009-12-13 12:52:23 -08:00
trace.c target misc: help/usage updates 2010-01-07 15:05:26 -08:00
trace.h change #include "types.h" to <helper/types.h> 2009-12-03 04:22:52 -08:00
xscale.c XScale: help/usage updates 2010-01-07 14:51:59 -08:00
xscale.h target files shouldn't #include <target/...h> 2009-12-13 12:52:23 -08:00