关于stm32f1系列大小容量单片机相互移植出现的空间不够的问题

博客讲述了在嵌入式开发过程中,由于初始未注意目标芯片型号,导致程序在小容量芯片上编译失败。问题源于RAM超出芯片最大限制。作者发现是内存管理配置不当,原本为大容量芯片设计的例程预留了过多RAM。通过调整内存分配,成功解决了编译问题。

手上的项目,程序一直是基于开发板写的,用的是ZET6。程序写的差不多了,但是学长做好的板子用的是RCT6。最开始没有注意在Target中把device换掉。后来出现问题才发现。换掉之后编译出现如下问题。

 根据报错信息和网上的一些帖子认为是芯片容量不够。

device换成大容量,在芯片编译通过后的.map文件中有如下信息

 RCT6的ROM与RAM分别为256KB与48KB,如今RAM的大小为48.13KB超出了RCT6的RAM的最大空间所以报错。

众所周知,RAM是用来存储变量的。

最开始看网上的帖子,认为是变量的使用带来的问题,于是查找哪些文件里面RW Date与ZI Date占用的比较多,便去优化修改该文件。但是这样效率非常低下。

后来发现是文件管理的问题,原子哥的例程是基于大容量芯片来写的

 在内存管理中有40k的ram被内存管理划去,留下的所剩无几,程序如果再稍微大一点,报错是必然的。

把这个40改小一点再编译问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值