kehuadong

MDK 代码优化导致的获取字符串长度问题

如下代码

// 平台_硬件版本_MCU型号_编译时间 (预留64字节空间,通过工具寻找并改写)
static const char MCU_VERSION[64] = "LATD_HW00_APP";	// 不要修改,工具会自动修改

// ARM获取MCU版本信息(0xA2)
static void _OnCmdA2_McuVersion(void) {
	ArmUart_McuResponseArmFrame(0xA2, RETURN_CODE_ERR_SUCCESS, (uint8_t*)MCU_VERSION, Util_StrLen(MCU_VERSION));
}

 

在生成的BIN文件用工具更改MCU_VERSION的内容和长度后, 如果使用strlen,  参数中的长度依然没变化, 个人猜测编译器优化时对于这种常量, strlen被替换为sizeof

posted on 2023-03-17 20:43  kehuadong  阅读(29)  评论(0编辑  收藏  举报

导航