打印
[N32WBxxx]

发现N32WB031库的一个BUG

[复制链接]
938|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
duanks|  楼主 | 2023-8-18 17:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在开高优化等级后,发现代码不能运行,检查后发现在system_n32wb03x.c中memcpy被优化掉了,不太清楚编译器为什么会这样做,但可以在110行左右做如下修改解决
void memcpy2(uint8_t *dst, const uint8_t *src, int len){
    uint8_t __IO *dst2 = dst;
    for(int i = 0; i < len; i++){
        dst2[i] = src[i];
    }
}
void SystemTrimValueRead(uint8_t* p_data,uint32_t byte_length)
{
    uint32_t ramcode[TRIM_READ_CMD_CODE_LEN/4 +1 ];
    trim_read_cmd_func_t trim_read_cmd_func = (trim_read_cmd_func_t)((uint8_t*)&ramcode[0] + 0x11);
    memcpy2((void*)ramcode,(const void*)TRIM_READ_CMD_CODE,TRIM_READ_CMD_CODE_LEN);
    (*trim_read_cmd_func)(TRIM_STORE_ADDR, p_data, byte_length);
}

使用特权

评论回复
沙发
xxmmi| | 2023-8-27 12:44 | 只看该作者
这么改下就可以了?

使用特权

评论回复
板凳
MessageRing| | 2023-9-3 23:22 | 只看该作者
关掉编译器优化行不

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

142

帖子

2

粉丝