Przeglądaj źródła

【同步】至上游最新

Signed-off-by: 朱天龙 (Armink) <armink.ztl@gmail.com>
朱天龙 (Armink) 3 lat temu
rodzic
commit
7c6c22412c
3 zmienionych plików z 13 dodań i 7 usunięć
  1. 7 1
      README_ZH.md
  2. 2 2
      cm_backtrace.c
  3. 4 4
      cmb_def.h

+ 7 - 1
README_ZH.md

@@ -216,6 +216,12 @@ void cm_backtrace_fault(uint32_t fault_handler_lr, uint32_t fault_handler_sp)
 - 1、在 `cmb_cfg.h` 中重新定义主栈的信息,此时 CmBacktrace 会优先使用 `cmb_cfg.h` 中的配置信息;
 - 2、修改项目配置,如果是 Keil-MDK ,则在启动文件的开头位置,将主栈的名称修改为默认的 `STACK` ,其他编译器一般很少出现该问题。
 
-### 2.6 许可
+
+### 2.6 视频讲解
+- https://www.bilibili.com/video/BV1LB4y1Q78a
+- https://www.bilibili.com/video/BV1uF411i7Ka
+- https://www.bilibili.com/video/BV1rb4y1474Y
+
+### 2.7 许可
 
 采用 MIT 开源协议,细节请阅读项目中的 LICENSE 文件内容。

+ 2 - 2
cm_backtrace.c

@@ -35,7 +35,7 @@
     #error "must be C99 or higher. try to add '-std=c99' to compile parameters"
 #endif
 
-#if defined(__CC_ARM) || defined(__CLANG_ARM)
+#if defined(__ARMCC_VERSION)
     #define SECTION_START(_name_)                _name_##$$Base
     #define SECTION_END(_name_)                  _name_##$$Limit
     #define IMAGE_SECTION_START(_name_)          Image$$##_name_##$$Base
@@ -145,7 +145,7 @@ void cm_backtrace_init(const char *firmware_name, const char *hardware_ver, cons
     strncpy(hw_ver, hardware_ver, CMB_NAME_MAX);
     strncpy(sw_ver, software_ver, CMB_NAME_MAX);
 
-#if defined(__CC_ARM) || defined(__CLANG_ARM)
+#if defined(__ARMCC_VERSION)
     main_stack_start_addr = (uint32_t)&CSTACK_BLOCK_START(CMB_CSTACK_BLOCK_NAME);
     main_stack_size = (uint32_t)&CSTACK_BLOCK_END(CMB_CSTACK_BLOCK_NAME) - main_stack_start_addr;
     code_start_addr = (uint32_t)&CODE_SECTION_START(CMB_CODE_SECTION_NAME);

+ 4 - 4
cmb_def.h

@@ -34,7 +34,7 @@
 #include <stdlib.h>
 
 /* library software version number */
-#define CMB_SW_VERSION                "1.4.0"
+#define CMB_SW_VERSION                "1.4.1"
 
 #define CMB_CPU_ARM_CORTEX_M0             0
 #define CMB_CPU_ARM_CORTEX_M3             1
@@ -62,7 +62,7 @@
 #endif
 
 
-#if defined(__CC_ARM) || defined(__CLANG_ARM)
+#if defined(__ARMCC_VERSION)
     /* C stack block name, default is STACK */
     #ifndef CMB_CSTACK_BLOCK_NAME
     #define CMB_CSTACK_BLOCK_NAME          STACK
@@ -301,7 +301,7 @@ if (!(EXPR))                                                                   \
 }
 
 /* ELF(Executable and Linking Format) file extension name for each compiler */
-#if defined(__CC_ARM) || defined(__CLANG_ARM)
+#if defined(__ARMCC_VERSION)
     #define CMB_ELF_FILE_EXTENSION_NAME          ".axf"
 #elif defined(__ICCARM__)
     #define CMB_ELF_FILE_EXTENSION_NAME          ".out"
@@ -355,7 +355,7 @@ if (!(EXPR))                                                                   \
         mov r0, sp
         bx lr
     }
-#elif defined(__CLANG_ARM)
+#elif defined(__clang__)
     __attribute__( (always_inline) ) static __inline uint32_t cmb_get_msp(void) {
         uint32_t result;
         __asm volatile ("mrs %0, msp" : "=r" (result) );