kernel: consolidate error handling code
* z_NanoFatalErrorHandler() is now moved to common kernel code and renamed z_fatal_error(). Arches dump arch-specific info before calling. * z_SysFatalErrorHandler() is now moved to common kernel code and renamed k_sys_fatal_error_handler(). It is now much simpler; the default policy is simply to lock interrupts and halt the system. If an implementation of this function returns, then the currently running thread is aborted. * New arch-specific APIs introduced: - z_arch_system_halt() simply powers off or halts the system. * We now have a standard set of fatal exception reason codes, namespaced under K_ERR_* * CONFIG_SIMPLE_FATAL_ERROR_HANDLER deleted * LOG_PANIC() calls moved to k_sys_fatal_error_handler() Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
This commit is contained in:
parent
81245a0193
commit
71ce8ceb18
53 changed files with 397 additions and 1183 deletions
|
@ -441,13 +441,14 @@ However, a real implementation is strongly recommended.
|
|||
Fault Management
|
||||
****************
|
||||
|
||||
Each architecture provides two fatal error handlers:
|
||||
|
||||
* :code:`_NanoFatalErrorHandler`, called by software for unrecoverable errors.
|
||||
* :code:`_SysFatalErrorHandler`, which makes the decision on how to handle
|
||||
the thread where the error is generated, most likely by terminating it.
|
||||
|
||||
See the current architecture implementations for examples.
|
||||
In the event of an unhandled CPU exception, the architecture
|
||||
code must call into :c:func:`z_fatal_error`. This function dumps
|
||||
out architecture-agnostic information and makes a policy
|
||||
decision on what to do next by invoking :c:func:`k_sys_fatal_error`.
|
||||
This function can be overridden to implement application-specific
|
||||
policies that could include locking interrupts and spinning forever
|
||||
(the default implementation) or even powering off the
|
||||
system (if supported).
|
||||
|
||||
Toolchain and Linking
|
||||
*********************
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue