Bootloader中无法更改APPBuffer程序包数组大小

2019-08-14 04:44发布

本帖最后由 leozzd 于 2017-8-28 09:19 编辑

由于APP的包比较大,80K左右,现在要更改Bootloader中APPBuffer程序包数组的大小为 u8  APPBuffer[1024 * 80];编译后KEIL提示:
..OUTPUTBootloader.axf: Error: L6406E: No space in execution regions with .ANY selector matching main.o(.bss).
..OUTPUTBootloader.axf: Error: L6407E: Sections of aggregate size 0x14258 bytes could not fit into .ANY selector(s).用的是STM32F103VET6,512Kflash,64Ksram。
无标题.png

为什么会空间不足。怎么处理呢~~~





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
leozzd
1楼-- · 2019-08-14 07:01
每次提问题,都是隔天自己来解答,APPBuffer还是定义成APPBuffer=[1024*55];,上位机计算bin包大小,定时分包下发,每包加包头,包号,CRC,STM32收到后逐包校验。收满100个包后复制到flash备份区(防止前100个收错回不去原来的程序),清除APPBuffer,继续接受剩下的分包,再移动到flash备份区,后面再总体复制到0x8010000的地址,启动。
BMN李
2楼-- · 2019-08-14 09:47
 精彩回答 2  元偷偷看……
leozzd
3楼-- · 2019-08-14 15:07
BMN李 发表于 2017-8-28 09:28
1024 * 80 > 64Ksram

APPBuffer接收的是来自APP的升级程序包,有什么办法能缩小APP的Code和RO,这样我就不用去考虑更换96K的sram芯片
BMN李
4楼-- · 2019-08-14 16:19
leozzd 发表于 2017-8-28 09:49
APPBuffer接收的是来自APP的升级程序包,有什么办法能缩小APP的Code和RO,这样我就不用去考虑更换96K的sr ...

优化代码咯。
hstar
5楼-- · 2019-08-14 18:01
 精彩回答 2  元偷偷看……

一周热门 更多>