IAP在线升级,SRAM的内存不足,需要分次接收,写入flash中。

2019-08-16 22:24发布

  由于是大容量的产品,采用的是两个两k的缓存。一个接收完,就换另一个接收,然后接收完的写入flash中。  写完代码后,用了一个3k多的hex文件做实验,第一个缓存里面的数据是正确的,但是第二个缓存中的数据少了几个,也就是说在写入flash中时,接收数据会遗失,没用采用协议,用的是裸数据传输。  第二个缓存接收的时候,前面的数据没有问题,中间会遗失几个数据。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
萧洛
1楼-- · 2019-08-17 00:45
 精彩回答 2  元偷偷看……
萧洛
2楼-- · 2019-08-17 03:46
3k多的bin文件做了测试,调试过程中发现,第一个缓存的数据没有问题,第二个缓存的数据少了一些,把写入flash的代码给注释掉,那么接收就没有问题。 但是我用的是另一个缓存,按道理来说,把第一个缓存中的数据写入flash中,应该是不会影响第二个缓存。 不知道问题出在哪里。
漂泊的雨林
3楼-- · 2019-08-17 04:36
我是没做缓存  把flash 做了3个区域  一个是IAP区域 一个是正常运行区域  一个是用来存HEX文件的区域   这样就不用缓存了 来了直接写
正点原子
4楼-- · 2019-08-17 06:59
要做协议。否则容易出问题的。
mygod
5楼-- · 2019-08-17 09:36
没看到代码呀,用什么方式传输,如果是232基本不会丢失
wacke
6楼-- · 2019-08-17 11:38
 精彩回答 2  元偷偷看……

一周热门 更多>