流程总结
1. 移植CMBacktrace源码
访问github 官网CMBackTrace代码仓库下载源码放置工程文件
2.打开工程添加源文件
3.链接文件目录地址
4.修改cmb_cfg.h配置文件
5.宏定义预跳转报错
6.编译器宏定义选择
这是宏定义分支选项目的,与编译器版本有关
分支逻辑说明
编译器版本
编译器6无宏定义分支对应
7.修改编译器版本
**修改编译器版本为5
编译器版本过低不支持
8 .添加AC6编译器分支
#elif defined(__CLANG_ARM) || defined(__clang__) // 修改点:添加 __clang__ 支持
// ARM Compiler 6 (AC6) 分支
__attribute__( (always_inline) ) static inline uint32_t cmb_get_msp(void) {
uint32_t result;
__asm volatile ("mrs %0, msp" : "=r" (result) );
return (result);
}
__attribute__( (always_inline) ) static inline uint32_t cmb_get_psp(void) {
uint32_t result;
__asm volatile ("mrs %0, psp" : "=r" (result) );
return (result);
}
__attribute__( (always_inline) ) static inline uint32_t cmb_get_sp(void) {
uint32_t result;
__asm volatile ("mov %0, sp" : "=r" (result) );
return (result);
}