diff --git a/arch/arm/core/cortex_m/nmi.c b/arch/arm/core/cortex_m/nmi.c index 76eb13b9161..8a7b644f438 100644 --- a/arch/arm/core/cortex_m/nmi.c +++ b/arch/arm/core/cortex_m/nmi.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -51,7 +52,8 @@ static _NmiHandler_t handler = _SysNmiOnReset; static void _DefaultHandler(void) { printk("NMI received! Rebooting...\n"); - _ScbSystemReset(); + /* In ARM implementation sys_reboot ignores the parameter */ + sys_reboot(0); } /** diff --git a/include/arch/arm/cortex_m/nmi.h b/include/arch/arm/cortex_m/nmi.h index 66e5521dc7d..230dd6cd0b1 100644 --- a/include/arch/arm/cortex_m/nmi.h +++ b/include/arch/arm/cortex_m/nmi.h @@ -23,11 +23,13 @@ #ifndef __CORTEX_M_NMI_H #define __CORTEX_M_NMI_H +#ifndef _ASMLANGUAGE #ifdef CONFIG_RUNTIME_NMI extern void _NmiInit(void); #define NMI_INIT() _NmiInit() #else #define NMI_INIT() #endif +#endif #endif /* __CORTEX_M_NMI_H */