arch/all: simpler _SysFatalErrorHandler()

- does not pull in printk(), for potential footprint gain
- does not pull in k_thread_abort(), for single-threaded systems

Signed-off-by: Benjamin Walsh <benjamin.walsh@windriver.com>
Change-Id: Ibc6a198b81a6cd73117d1e85aa05b92a4501a34d
This commit is contained in:
Benjamin Walsh 2016-12-14 15:16:32 -05:00 committed by Benjamin Walsh
commit 48db0b3443
5 changed files with 35 additions and 0 deletions

View file

@ -54,6 +54,7 @@ FUNC_NORETURN void _SysFatalErrorHandler(unsigned int reason,
ARG_UNUSED(reason);
ARG_UNUSED(pEsf);
#if !defined(CONFIG_SIMPLE_FATAL_ERROR_HANDLER)
if (k_is_in_isr() || _is_thread_essential()) {
printk("Fatal fault in %s! Spinning...\n",
k_is_in_isr() ? "ISR" : "essential thread");
@ -63,5 +64,11 @@ FUNC_NORETURN void _SysFatalErrorHandler(unsigned int reason,
printk("Fatal fault in thread %p! Aborting.\n", _current);
k_thread_abort(_current);
#else
for (;;) {
k_cpu_idle();
}
#endif
CODE_UNREACHABLE;
}