3d9ba10b5c
The original exception handling has space to optimize and and some bugs need to be fixed. * define NANO_ESF * add the definition of NANO_ESF which is an irq_stack_frame * add the corresponding codes in exception entry and handler * remove _default_esf * implement the _ARCH_EXCEPT * use trap exception to raise exception by kernel * add corresponding trap exception entry * add _do_kernel_oops to handle the exception raised by _ARCH_EXCEPT. * add the thread context switch in exception return * case: kernel oops may raise thread context switch * case: some tests will re-implement SysFatalHandler to raise thread context switch. * as the exception and isr are handled in kernel isr stack, so the thread context switch must be in the return of exception/isr , and the exception handler must return, should not be decorated with FUNC_NORETURN * for arc, _is_in_isr should consider the case of exception Signed-off-by: Wayne Ren <wei.ren@synopsys.com> |
||
---|---|---|
.. | ||
v2 | ||
arch.h |