[STM32L4] CubeIDE中的memcpy函数问题

[复制链接]
340|11
jerry尧 发表于 2025-9-10 11:58 | 显示全部楼层 |阅读模式
新版本CubeIDE中的memcpy函数问题。当使用memcpy时:

memcpy(&config, SavedConf, sizeof(config));

其中config是一个对象,SavedConf是一个数组,结果发现没有复制任何内容。

这个问题出现在1.9版本的CubeIDE中,当我在1.7版本中编译时,数组可以正常复制。

cr315 发表于 2025-9-10 14:53 | 显示全部楼层
源地址或目标地址有没有正确对齐?
duo点 发表于 2025-9-10 16:54 | 显示全部楼层
config和SavedConf的地址是否对齐的?检查 sizeof(config) 是否为对齐大小的整数倍。
duo点 发表于 2025-9-10 14:55 | 显示全部楼层
新版本的编译器可能启用了更高级别的优化,导致 memcpy 被优化掉或行为异常。
flycamelaaa 发表于 2025-9-10 19:56 | 显示全部楼层
降低编译器优化级别看问题是否解决。
jcky001 发表于 2025-9-10 20:56 | 显示全部楼层
可以用volatile关键字修饰相关变量,防止编译器优化掉 memcpy 操作。
onlycook 发表于 2025-9-10 20:57 | 显示全部楼层
如果SavedConf或&config 指向的内存区域存在重叠或越界访问,memcpy 可能会失败。
powerantone 发表于 2025-9-10 21:58 | 显示全部楼层
检查 sizeof(config) 是否超过了目标或源缓冲区的实际大小。
onlycook 发表于 2025-9-10 22:59 | 显示全部楼层
新版本的CubeIDE可能使用了不同的C标准库,memcpy 的实现可能有所变化。
probedog 发表于 2025-9-10 15:35 | 显示全部楼层
可能是内存保护或权限问题。
stormwind123 发表于 2025-9-10 16:41 | 显示全部楼层
config或SavedConf 可能没正确初始化。
probedog 发表于 2025-9-10 22:02 | 显示全部楼层
新版本的CubeIDE可能更改了默认的编译器或链接器配置,导致 memcpy 行为异常。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

82

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部