正在开发一块EVAL板stm32G474RE,其闪存为512K,RAM为128K。 EVAL 板上一切正常。现在我们收到了实际的硬件,这是一个stm32g474CBU。与 EVAL 板非常相似,但 FLASH 128K 和 RAM 为 128K。
新的 micro 只需要很少的更改,例如链接器文件。 但开始注意到一个奇怪的行为,即代码中初始化的一些全局变量没有它们的值。当程序下载完毕并且我在主函数中遇到断点时,全局变量的值不存在,只有 0xFF。
看来全局变量的值甚至没有从闪存复制到内存的.data 部分。
文本数据 bss dec 十六进制 59416 11528 26768 97712 17db0
任何想法。正如我之前提到的,代码在 EVAL 板上完美运行,该板具有几乎相同的微控制器。
不知道该尝试什么
在链接器脚本中查找:
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 512K
并将其更改为:
FLASH (rx) : ORIGIN = 0x8000000, LENGTH = 128K