背景:
之前在做的一个项目使用的是64K内存的芯片,随着功能的更新,空间也渐渐不够用了,于是重新设计了板子,换了128K的芯片,并且keil工程的芯片类型也相对应做更改,一段时间之后,添加代码再编译出现了如下的错误:
错误原因:
实际上还是超内存了
解决办法:
第一步
128K的芯片,下图红框处应该是图上所示的数据,有些版本的KEIL会在你更换Device时自动更改这个地方;而有些版本需要手动修改。
第二步
还有一个文件需要统一修改,点击Target - Linker - Edit…,会打开 STM32_Flash.scat 文件,
这个文件中的 LR_IROM1 和 ER_IROM1 后边的数据与第一步中的数据相同,即图中蓝框处,需要修改为与第一步相同的数据
最后
如果是其他大小内存的芯片,修改方法是一样的,只不过对应的数据不一样,常用的:
64k — 0x10000
128k — 0x20000
256k — 0x40000
512k — 0x80000