diff --git a/arch/arm/arm-v6m/cortex-m0/armcc/port_c.c b/arch/arm/arm-v6m/cortex-m0/armcc/port_c.c index c3d668e1..5a5b1c6a 100644 --- a/arch/arm/arm-v6m/cortex-m0/armcc/port_c.c +++ b/arch/arm/arm-v6m/cortex-m0/armcc/port_c.c @@ -78,7 +78,7 @@ __PORT__ void port_standby_mode_enter(void) #if TOS_CFG_FAULT_BACKTRACE_EN > 0u __PORT__ void port_fault_diagnosis(void) { - k_fault_log_writer("fault diagnosis does not supported in CORTEX M0\n"); + k_fault_log_writer("fault diagnosis is not supported in CORTEX M0\n"); } /*------------------ RealView Compiler -----------------*/ @@ -90,10 +90,16 @@ __PORT__ __ASM__ void HardFault_Handler(void) IMPORT fault_backtrace MOV r0, lr - TST lr, #0x04 - ITE EQ - MRSEQ r1, MSP - MRSNE r1, PSP + MOVS r1, #0x04 + TST r0, r1 + BEQ _LD_MSP + MRS r1, PSP + B _EXIT + +_LD_MSP + MRS r1, MSP + +_EXIT BL fault_backtrace } @@ -104,10 +110,14 @@ __PORT__ void __NAKED__ HardFault_Handler(void) { __ASM__ __VOLATILE__ ( "MOV r0, lr\n\t" - "TST lr, #0x04\n\t" - "ITE EQ\n\t" - "MRSEQ r1, MSP\n\t" - "MRSNE r1, PSP\n\t" + "MOVS r1, #0x04\n\t" + "TST r0, r1\n\t" + "BEQ _LD_MSP\n\t" + "MRS r1, PSP\n\t" + "B _EXIT\n\t" + "_LD_MSP:\n\t" + "MRS r1, MSP\n\t" + "_EXIT:\n\t" "BL fault_backtrace\n\t" ); } diff --git a/arch/arm/arm-v6m/cortex-m0/gcc/port_c.c b/arch/arm/arm-v6m/cortex-m0/gcc/port_c.c index c3d668e1..8316e60e 100644 --- a/arch/arm/arm-v6m/cortex-m0/gcc/port_c.c +++ b/arch/arm/arm-v6m/cortex-m0/gcc/port_c.c @@ -78,7 +78,7 @@ __PORT__ void port_standby_mode_enter(void) #if TOS_CFG_FAULT_BACKTRACE_EN > 0u __PORT__ void port_fault_diagnosis(void) { - k_fault_log_writer("fault diagnosis does not supported in CORTEX M0\n"); + k_fault_log_writer("fault diagnosis is not supported in CORTEX M0\n"); } /*------------------ RealView Compiler -----------------*/ diff --git a/arch/arm/arm-v6m/cortex-m0/iccarm/port_c.c b/arch/arm/arm-v6m/cortex-m0/iccarm/port_c.c index c3d668e1..8316e60e 100644 --- a/arch/arm/arm-v6m/cortex-m0/iccarm/port_c.c +++ b/arch/arm/arm-v6m/cortex-m0/iccarm/port_c.c @@ -78,7 +78,7 @@ __PORT__ void port_standby_mode_enter(void) #if TOS_CFG_FAULT_BACKTRACE_EN > 0u __PORT__ void port_fault_diagnosis(void) { - k_fault_log_writer("fault diagnosis does not supported in CORTEX M0\n"); + k_fault_log_writer("fault diagnosis is not supported in CORTEX M0\n"); } /*------------------ RealView Compiler -----------------*/ diff --git a/arch/arm/arm-v7a/cortex-a7/gcc/port_c.c b/arch/arm/arm-v7a/cortex-a7/gcc/port_c.c index 58653f79..9b787d32 100644 --- a/arch/arm/arm-v7a/cortex-a7/gcc/port_c.c +++ b/arch/arm/arm-v7a/cortex-a7/gcc/port_c.c @@ -92,7 +92,7 @@ __PORT__ void port_standby_mode_enter(void) #if TOS_CFG_FAULT_BACKTRACE_EN > 0u __PORT__ void port_fault_diagnosis(void) { - // k_fault_log_writer("fault diagnosis does not supported in CORTEX M0\n"); + // k_fault_log_writer("fault diagnosis is not supported in CORTEX a7\n"); } #if 0 diff --git a/arch/arm/arm-v7m/cortex-m0+/armcc/port_c.c b/arch/arm/arm-v7m/cortex-m0+/armcc/port_c.c index 12171af1..c0274acf 100644 --- a/arch/arm/arm-v7m/cortex-m0+/armcc/port_c.c +++ b/arch/arm/arm-v7m/cortex-m0+/armcc/port_c.c @@ -95,7 +95,7 @@ __PORT__ void port_standby_mode_enter(void) #if TOS_CFG_FAULT_BACKTRACE_EN > 0u __PORT__ void port_fault_diagnosis(void) { - k_fault_log_writer("fault diagnosis does not supported in CORTEX M0\n"); + k_fault_log_writer("fault diagnosis is not supported in CORTEX M0+\n"); } /*------------------ RealView Compiler -----------------*/ @@ -107,10 +107,16 @@ __PORT__ __ASM__ void HardFault_Handler(void) IMPORT fault_backtrace MOV r0, lr - TST lr, #0x04 - ITE EQ - MRSEQ r1, MSP - MRSNE r1, PSP + MOVS r1, #0x04 + TST r0, r1 + BEQ _LD_MSP + MRS r1, PSP + B _EXIT + +_LD_MSP + MRS r1, MSP + +_EXIT BL fault_backtrace } @@ -121,10 +127,14 @@ __PORT__ void __NAKED__ HardFault_Handler(void) { __ASM__ __VOLATILE__ ( "MOV r0, lr\n\t" - "TST lr, #0x04\n\t" - "ITE EQ\n\t" - "MRSEQ r1, MSP\n\t" - "MRSNE r1, PSP\n\t" + "MOVS r1, #0x04\n\t" + "TST r0, r1\n\t" + "BEQ _LD_MSP\n\t" + "MRS r1, PSP\n\t" + "B _EXIT\n\t" + "_LD_MSP:\n\t" + "MRS r1, MSP\n\t" + "_EXIT:\n\t" "BL fault_backtrace\n\t" ); } diff --git a/arch/arm/arm-v7m/cortex-m0+/gcc/port_c.c b/arch/arm/arm-v7m/cortex-m0+/gcc/port_c.c index 12171af1..40f810f2 100644 --- a/arch/arm/arm-v7m/cortex-m0+/gcc/port_c.c +++ b/arch/arm/arm-v7m/cortex-m0+/gcc/port_c.c @@ -95,7 +95,7 @@ __PORT__ void port_standby_mode_enter(void) #if TOS_CFG_FAULT_BACKTRACE_EN > 0u __PORT__ void port_fault_diagnosis(void) { - k_fault_log_writer("fault diagnosis does not supported in CORTEX M0\n"); + k_fault_log_writer("fault diagnosis is not supported in CORTEX M0+\n"); } /*------------------ RealView Compiler -----------------*/ diff --git a/arch/arm/arm-v7m/cortex-m0+/iccarm/port_c.c b/arch/arm/arm-v7m/cortex-m0+/iccarm/port_c.c index 12171af1..40f810f2 100644 --- a/arch/arm/arm-v7m/cortex-m0+/iccarm/port_c.c +++ b/arch/arm/arm-v7m/cortex-m0+/iccarm/port_c.c @@ -95,7 +95,7 @@ __PORT__ void port_standby_mode_enter(void) #if TOS_CFG_FAULT_BACKTRACE_EN > 0u __PORT__ void port_fault_diagnosis(void) { - k_fault_log_writer("fault diagnosis does not supported in CORTEX M0\n"); + k_fault_log_writer("fault diagnosis is not supported in CORTEX M0+\n"); } /*------------------ RealView Compiler -----------------*/ diff --git a/arch/arm/arm-v8m/cortex-m23/armcc/port_c.c b/arch/arm/arm-v8m/cortex-m23/armcc/port_c.c index 8334620a..02a1d724 100644 --- a/arch/arm/arm-v8m/cortex-m23/armcc/port_c.c +++ b/arch/arm/arm-v8m/cortex-m23/armcc/port_c.c @@ -95,7 +95,7 @@ __PORT__ void port_standby_mode_enter(void) #if TOS_CFG_FAULT_BACKTRACE_EN > 0u __PORT__ void port_fault_diagnosis(void) { - k_fault_log_writer("fault diagnosis does not supported in CORTEX M0\n"); + k_fault_log_writer("fault diagnosis is not supported in CORTEX M23\n"); } /*------------------ RealView Compiler -----------------*/ diff --git a/arch/arm/arm-v8m/cortex-m23/gcc/port_c.c b/arch/arm/arm-v8m/cortex-m23/gcc/port_c.c index 12171af1..02a1d724 100644 --- a/arch/arm/arm-v8m/cortex-m23/gcc/port_c.c +++ b/arch/arm/arm-v8m/cortex-m23/gcc/port_c.c @@ -16,7 +16,7 @@ *---------------------------------------------------------------------------*/ #include "tos_k.h" -#include "core_cm0plus.h" +#include "core_cm23.h" __PORT__ void port_cpu_reset(void) { @@ -95,7 +95,7 @@ __PORT__ void port_standby_mode_enter(void) #if TOS_CFG_FAULT_BACKTRACE_EN > 0u __PORT__ void port_fault_diagnosis(void) { - k_fault_log_writer("fault diagnosis does not supported in CORTEX M0\n"); + k_fault_log_writer("fault diagnosis is not supported in CORTEX M23\n"); } /*------------------ RealView Compiler -----------------*/ diff --git a/arch/arm/arm-v8m/cortex-m23/iccarm/port_c.c b/arch/arm/arm-v8m/cortex-m23/iccarm/port_c.c index 12171af1..02a1d724 100644 --- a/arch/arm/arm-v8m/cortex-m23/iccarm/port_c.c +++ b/arch/arm/arm-v8m/cortex-m23/iccarm/port_c.c @@ -16,7 +16,7 @@ *---------------------------------------------------------------------------*/ #include "tos_k.h" -#include "core_cm0plus.h" +#include "core_cm23.h" __PORT__ void port_cpu_reset(void) { @@ -95,7 +95,7 @@ __PORT__ void port_standby_mode_enter(void) #if TOS_CFG_FAULT_BACKTRACE_EN > 0u __PORT__ void port_fault_diagnosis(void) { - k_fault_log_writer("fault diagnosis does not supported in CORTEX M0\n"); + k_fault_log_writer("fault diagnosis is not supported in CORTEX M23\n"); } /*------------------ RealView Compiler -----------------*/ diff --git a/arch/msp430/MSP430X/icc430/port_c.c b/arch/msp430/MSP430X/icc430/port_c.c index 24b2b6ac..7a4fe5cf 100644 --- a/arch/msp430/MSP430X/icc430/port_c.c +++ b/arch/msp430/MSP430X/icc430/port_c.c @@ -103,7 +103,7 @@ __PORT__ void port_standby_mode_enter(void) #if TOS_CFG_FAULT_BACKTRACE_EN > 0u __PORT__ void port_fault_diagnosis(void) { - k_fault_log_writer("fault diagnosis does not supported in MSP430\n"); + k_fault_log_writer("fault diagnosis is not supported in MSP430\n"); }