移植CMBacktrace使用记录——解决AC6编译器报错

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);
    }

在这里插入图片描述

9.大功告成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值