[STM32F4] 全局结构体在调试器中显示全零

[复制链接]
石榴大王 发表于 2025-8-19 11:17 | 显示全部楼层 |阅读模式

STM32CubeIDE调试中的异常现象——全局结构体在调试器中显示全零,但代码运行却如同数据已正确填充!

我在STM32F4上开发了一个包含Bootloader和Main application的项目。这两个程序都会读取外部Flash来获取配置数据。Bootloader会检查主程序是否之前已将新固件上传至外部Flash,如果是,则用新应用程序重新烧写STM32的Flash,并修改外部Flash中的标志位以避免重复烧写。完成后,无论是否进行了重新烧写,都会跳转至主应用程序。

问题在于:在Bootloader阶段读取的配置数据在调试器中显示正常,但当程序跳转到主应用程序并再次读取配置数据时,调试器中却显示全零。然而,代码运行的表现却像是配置数据正确读取(全零是无效值,正常情况下会执行设置有效值的代码,但此时并未执行该代码,表明数据已被视为有效)。

根据调试器显示,两个配置结构体最终位于相同的RAM地址,但在主程序中查看该内存位置时却显示全零...

duo点 发表于 2025-8-19 11:27 | 显示全部楼层
Main Application的启动代码未正确初始化全局变量
duo点 发表于 2025-8-19 11:27 | 显示全部楼层
也可能是调试器未能正确同步内存视图。
qintian0303 发表于 2025-8-19 15:32 | 显示全部楼层
调试器为0是不是调试方法的问题,不支持实施啊,你打个断点停一下看有没有更新
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

40

帖子

0

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