From 5349ab2f150217b63164240266bd489dc53bcfad Mon Sep 17 00:00:00 2001 From: armink Date: Sat, 25 Nov 2017 20:47:49 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91D?= =?UTF-8?q?IVBYZERO=20=E4=B8=BA=20DIVBYZERO0=20=EF=BC=8C=E9=81=BF=E5=85=8D?= =?UTF-8?q?=20Keil=20=E4=B8=8B=E4=B8=8E=20signal.h=20=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=AE=8F=E9=87=8D=E5=90=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: armink --- cm_backtrace/cm_backtrace.c | 10 +++++----- cm_backtrace/cmb_def.h | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cm_backtrace/cm_backtrace.c b/cm_backtrace/cm_backtrace.c index b9408e9..8ab6abb 100644 --- a/cm_backtrace/cm_backtrace.c +++ b/cm_backtrace/cm_backtrace.c @@ -91,7 +91,7 @@ enum { PRINT_UFSR_INVPC, PRINT_UFSR_NOCP, PRINT_UFSR_UNALIGNED, - PRINT_UFSR_DIVBYZERO, + PRINT_UFSR_DIVBYZERO0, PRINT_DFSR_HALTED, PRINT_DFSR_BKPT, PRINT_DFSR_DWTTRAP, @@ -132,7 +132,7 @@ static const char *print_info[] = { [PRINT_UFSR_INVPC] = "Usage fault is caused by attempts to do an exception with a bad value in the EXC_RETURN number", [PRINT_UFSR_NOCP] = "Usage fault is caused by attempts to execute a coprocessor instruction", [PRINT_UFSR_UNALIGNED] = "Usage fault is caused by indicates that an unaligned access fault has taken place", - [PRINT_UFSR_DIVBYZERO] = "Usage fault is caused by Indicates a divide by zero has taken place (can be set only if DIV_0_TRP is set)", + [PRINT_UFSR_DIVBYZERO0] = "Usage fault is caused by Indicates a divide by zero has taken place (can be set only if DIV_0_TRP is set)", [PRINT_DFSR_HALTED] = "Debug fault is caused by halt requested in NVIC", [PRINT_DFSR_BKPT] = "Debug fault is caused by BKPT instruction executed", [PRINT_DFSR_DWTTRAP] = "Debug fault is caused by DWT match occurred", @@ -170,7 +170,7 @@ static const char *print_info[] = { [PRINT_UFSR_INVPC] = "发生用法错误,原因:无效的异常返回码", [PRINT_UFSR_NOCP] = "发生用法错误,原因:企图执行协处理器指令", [PRINT_UFSR_UNALIGNED] = "发生用法错误,原因:企图执行非对齐访问", - [PRINT_UFSR_DIVBYZERO] = "发生用法错误,原因:企图执行除 0 操作", + [PRINT_UFSR_DIVBYZERO0] = "发生用法错误,原因:企图执行除 0 操作", [PRINT_DFSR_HALTED] = "发生调试错误,原因:NVIC 停机请求", [PRINT_DFSR_BKPT] = "发生调试错误,原因:执行 BKPT 指令", [PRINT_DFSR_DWTTRAP] = "发生调试错误,原因:数据监测点匹配", @@ -540,8 +540,8 @@ static void fault_diagnosis(void) { if (regs.ufsr.bits.UNALIGNED) { cmb_println(print_info[PRINT_UFSR_UNALIGNED]); } - if (regs.ufsr.bits.DIVBYZERO) { - cmb_println(print_info[PRINT_UFSR_DIVBYZERO]); + if (regs.ufsr.bits.DIVBYZERO0) { + cmb_println(print_info[PRINT_UFSR_DIVBYZERO0]); } } } diff --git a/cm_backtrace/cmb_def.h b/cm_backtrace/cmb_def.h index b025b52..20065ea 100644 --- a/cm_backtrace/cmb_def.h +++ b/cm_backtrace/cmb_def.h @@ -34,7 +34,7 @@ #include /* library software version number */ -#define CMB_SW_VERSION "1.1.0" +#define CMB_SW_VERSION "1.1.1" #define CMB_CPU_ARM_CORTEX_M0 0 #define CMB_CPU_ARM_CORTEX_M3 1 @@ -233,7 +233,7 @@ struct cmb_hard_fault_regs{ unsigned short NOCP : 1; // Attempts to execute a coprocessor instruction unsigned short UnusedBits : 4; unsigned short UNALIGNED : 1; // Indicates that an unaligned access fault has taken place - unsigned short DIVBYZERO : 1; // Indicates a divide by zero has taken place (can be set only if DIV_0_TRP is set) + unsigned short DIVBYZERO0 : 1; // Indicates a divide by zero has taken place (can be set only if DIV_0_TRP is set) } bits; } ufsr; // Usage Fault Status Register (0xE000ED2A)