stm32f103c6t6 iap升级ZI-DATA太大

2019-07-21 08:16发布

使用的芯片是STM32F103C6T6,10K的RAM。使用的是原子哥的IAPmini板子的历程进行的修改,#define USART_REC_LEN          18*1024 ,编译的时候依旧报错说RAM不足。..OBJSTMFLASH.axf: Error: L6220E: Execution region RW_IRAM1 size (24576 bytes) exceeds limit (10240 bytes). Region contains 360 bytes of padding and 0 bytes of veneers (total 360 bytes of linker generated content).
现在的RI-data即使是C8T6也会报错,想请问下原子哥IAP里面是开个什么数组以致于有这么大的ZI-data,有什么办法优化,不胜感激






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
szczyb1314
1楼-- · 2019-07-21 09:52
收到1K数据先写1Kflash,然后再收1K写1Kflash,一直做下去,直到APP数据全部写入flash,这样子你的数组只需要定义1K大小即可
yklstudent
2楼-- · 2019-07-21 10:42
你定义这么大的数组干嘛
510083812
3楼-- · 2019-07-21 10:59
yklstudent 发表于 2018-11-4 10:33
你定义这么大的数组干嘛

可能是我没理解对,我觉得这个数组不是用来接收上位机给单片机发送的升级Bin文件吗?我的程序大约在15K左右,需要的数据就要这么大了
yklstudent
4楼-- · 2019-07-21 13:35
 精彩回答 2  元偷偷看……
510083812
5楼-- · 2019-07-21 15:35
szczyb1314 发表于 2018-11-4 17:14
收到1K数据先写1Kflash,然后再收1K写1Kflash,一直做下去,直到APP数据全部写入flash,这样子你的数组只需 ...

恩恩,您说的这个方法很对,不过原子哥的XCOM那个软件好像不能1K这样发送,是需要专门写一个上位机实现1K方式的传送吗?
jermy_z
6楼-- · 2019-07-21 17:46
510083812 发表于 2018-11-4 17:34
恩恩,您说的这个方法很对,不过原子哥的XCOM那个软件好像不能1K这样发送,是需要专门写一个上位机实现1K ...

一般做软件升级的,不可能一次性发完,都是分包发送的

一周热门 更多>