你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Flash编程速度问题

[复制链接]
everkimage 提问时间:2018-6-7 17:48 /
IAP方式写Flash,34KB的数据大概需要100S,包括写和页擦除。但是用仿真器5S左右就搞定了。有提升空间吗?当然IAP方式是串口接数据,仿真器是SWD接口。
收藏 评论9 发布时间:2018-6-7 17:48

举报

9个回答
STM1024 回答时间:2018-6-7 18:57:09
本帖最后由 stm1024 于 2018-6-7 18:58 编辑

仿真器用的是axf文件,含有调试信息和bin文件,通常bin文件比hex文件要小很多,基本上50%都不到,可能这也是一个原因吧。
当然SWD实际上也是串口的,不过比ISP效率还是要高一些

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

wujique 回答时间:2018-6-7 20:28:12
34K?100S?一分半钟?太慢,串口波特率多少?
印象中几百K也才2分钟,具体多少忘了。
可以根据波特率算出数据传输时间,剩下就是擦和写FLASH时间。
擦手册,看看擦除要多少时间,擦除是主要时间。
feixiang20 回答时间:2018-6-8 00:06:33
先计算出数据传输的时间,写入地址,写入时间,解锁flash编写擦除控制器,擦除flash,也可看看【STM 32 IAP(对flash进行读写)】代码

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

七哥 回答时间:2018-6-8 00:17:47
100S绝对的慢。
仿真器下载时,是在RAM中跑编程算法程序的,然后给内部Flash烧写数据。
你也可以试试在RAM中跑程序,然后IAP往Flash里写数据,这样只是为了测试写Flash。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

everkimage 回答时间:2018-6-8 08:13:27
huangxuejia-292 发表于 2018-6-7 20:28
34K?100S?一分半钟?太慢,串口波特率多少?
印象中几百K也才2分钟,具体多少忘了。
可以根据波特率算出 ...

波特率9600。
擦除页反正就FLASH_ErasePage();
写的话调用的是FLASH_ProgramWord(),每次写4字节,有没有更好的函数了?
everkimage 回答时间:2018-6-8 08:17:13
toofree 发表于 2018-6-8 00:17
100S绝对的慢。
仿真器下载时,是在RAM中跑编程算法程序的,然后给内部Flash烧写数据。
你也可以试试在RAM ...

有没有测试过在内存中写Flash会快?而不是代码执行上的快。
forget121 回答时间:2018-6-8 09:34:11
100S几十K,在真正生产都不用做了,优化下软件

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

everkimage 回答时间:2018-6-13 16:10:22
上位机程序效率修改后,现在34KB大约40S完成,大约1KB/S。
如果不是搬到内存中运行的话,提升空间应该不多了。
废鱼 回答时间:2018-6-13 16:33:42
最起码要115200,9600的波特率传输速率本来就很慢。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版