zephyr/include/arch/arm/aarch32
Chris Coleman 99a268fa16 arch: arm: Collect full register state in Cortex-M Exception Stack Frame
To debug hard-to-reproduce faults/panics, it's helpful to get the full
register state at the time a fault occurred. This enables recovering
full backtraces and the state of local variables at the time of a
crash.

This PR introduces a new Kconfig option, CONFIG_EXTRA_EXCEPTION_INFO,
to facilitate this use case. The option enables the capturing of the
callee-saved register state (r4-r11 & exc_return) during a fault. The
info is forwarded to `k_sys_fatal_error_handler` in the z_arch_esf_t
parameter. From there, the data can be saved for post-mortem analysis.

To test the functionality a new unit test was added to
tests/arch/arm_interrupt which verifies the register contents passed
in the argument match the state leading up to a crash.

Signed-off-by: Chris Coleman <chris@memfault.com>
2020-08-31 10:13:27 +02:00
..
cortex_a_r arches: centralize noinit linker defintiions 2020-07-30 21:11:14 -04:00
cortex_m arch: arm: aarch32: add support for Cortex-M1 2020-08-14 13:35:39 -05:00
cortex_r arch: arm: aarch32: Add header shims for cortex_a_r renaming 2020-03-26 11:20:36 +01:00
arch.h kernel: introduce supervisor-only stacks 2020-07-30 21:11:14 -04:00
asm_inline_gcc.h arch: arm: aarch32: Rename cortex_r to cortex_a_r 2020-03-26 11:20:36 +01:00
asm_inline.h arch: arm: aarch32: Fix header description 2020-03-13 09:59:59 +01:00
error.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
exc.h arch: arm: Collect full register state in Cortex-M Exception Stack Frame 2020-08-31 10:13:27 +02:00
irq.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
misc.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
nmi.h arch: arm: aarch32: Fix header description 2020-03-13 09:59:59 +01:00
syscall.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
thread.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00