Flash编程速度有提升空间吗?

2019-07-14 14:59发布

IAP方式写Flash,34KB的数据大概需要100S,包括写和页擦除。但是用仿真器5S左右就搞定了。有提升空间吗?当然IAP方式是串口接数据,仿真器是SWD接口。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
hongjane
1楼-- · 2019-07-15 01:47
34K?100S?一分半钟?太慢,串口波特率多少?
印象中几百K也才2分钟,具体多少忘了。
可以根据波特率算出数据传输时间,剩下就是擦和写FLASH时间。
擦手册,看看擦除要多少时间,擦除是主要时间。
cnm7
2楼-- · 2019-07-15 07:47
 精彩回答 2  元偷偷看……
zhouxk
3楼-- · 2019-07-15 10:04
100S绝对的慢。
仿真器下载时,是在RAM中跑编程算法程序的,然后给内部Flash烧写数据。
你也可以试试在RAM中跑程序,然后IAP往Flash里写数据,这样只是为了测试写Flash。
dang28
4楼-- · 2019-07-15 13:44
hongjane 发表于 2018-12-26 07:46
34K?100S?一分半钟?太慢,串口波特率多少?
印象中几百K也才2分钟,具体多少忘了。
可以根据波特率算出数据传输时间,剩下就是擦和写FLASH时间。

波特率9600。
擦除页反正就FLASH_ErasePage();
写的话调用的是FLASH_ProgramWord(),每次写4字节,有没有更好的函数了?
dang28
5楼-- · 2019-07-15 18:46
zhouxk 发表于 2018-12-26 08:01
100S绝对的慢。
仿真器下载时,是在RAM中跑编程算法程序的,然后给内部Flash烧写数据。
你也可以试试在RAM中跑程序,然后IAP往Flash里写数据,这样只是为了测试写Flash。

有没有测试过在内存中写Flash会快?而不是代码执行上的快。
daaty
6楼-- · 2019-07-15 19:43
100S几十K,在真正生产都不用做了,优化下软件

一周热门 更多>