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

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

查看全部评分

huangxuejia-292 回答时间: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

查看全部评分

toofree 回答时间: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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版