[STM32F1] 基于USB的IAP功能,如何提搞固件更新速度?

[复制链接]
1373|11
 楼主| mgf006 发表于 2018-6-5 09:49 | 显示全部楼层 |阅读模式
最近在搞一个IAP功能。功能是实现了,但使用的是基本的4字节一次写的涵数。感觉速度太慢,远没有像用ST-LINK这样的工具下载的速度快。即同样都是HID类的USB,LINK工具也是每次发送16Bytes/32Bytes 有效数据,但它的速度快很多。 难道真的要搞1-2K的数组变量先接收数据,然后再Page写入?或者,有没其它更好的办法?
yiyigirl2014 发表于 2018-6-5 13:59 | 显示全部楼层
是不是用的DMA技术。
yiyigirl2014 发表于 2018-6-5 13:59 | 显示全部楼层
确定好接收写入内容后,直接通过DMA哗哗的写入。
huangcunxiake 发表于 2018-6-5 17:34 | 显示全部楼层
这个可以用DMA?
 楼主| mgf006 发表于 2018-6-5 23:01 | 显示全部楼层
yiyigirl2014 发表于 2018-6-5 13:59
确定好接收写入内容后,直接通过DMA哗哗的写入。

我都是用的这个 FLASH_ProgramWord(addr,data);  速度太慢了。DMA有没有参考例子?
zhuotuzi 发表于 2018-6-7 09:44 | 显示全部楼层
你看看官方的手册,里面有介绍DMA的,据说这个才是最快的传输,无需CPU参与,直接点到点猛传。
泰山特曲123 发表于 2018-6-7 20:02 来自手机 | 显示全部楼层
yiyigirl2014 发表于 2018-6-5 13:59
确定好接收写入内容后,直接通过DMA哗哗的写入。

你试过?DMA是无法直接把数据写入FLAH的,因为写入FLASH必须通过操作FLASH写入寄存器。可以通过DMA把数据接收到RAM,够一页够再写入
捉虫天师 发表于 2018-6-7 22:32 | 显示全部楼层
泰山特曲123 发表于 2018-6-7 20:02
你试过?DMA是无法直接把数据写入FLAH的,因为写入FLASH必须通过操作FLASH写入寄存器。可以通过DMA把数据 ...

那就按页写。
mmuuss586 发表于 2018-6-7 22:37 | 显示全部楼层
最近不少人提到这个问题,我问下原厂看看;
icecut 发表于 2018-6-8 16:15 | 显示全部楼层
hid可以扩展bulk传输的.
Xflyan 发表于 2018-6-8 16:30 | 显示全部楼层
STM32F407VE,200K,整个过程约15S,擦除、写入、校验,算快还是慢???
yklstudent 发表于 2018-6-8 21:47 来自手机 | 显示全部楼层
407擦除费时间,15秒正常
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

417

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部