打印
[STM32F1]

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

[复制链接]
929|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?

使用特权

评论回复
5
mgf006|  楼主 | 2018-6-5 23:01 | 只看该作者
yiyigirl2014 发表于 2018-6-5 13:59
确定好接收写入内容后,直接通过DMA哗哗的写入。

我都是用的这个 FLASH_ProgramWord(addr,data);  速度太慢了。DMA有没有参考例子?

使用特权

评论回复
6
zhuotuzi| | 2018-6-7 09:44 | 只看该作者
你看看官方的手册,里面有介绍DMA的,据说这个才是最快的传输,无需CPU参与,直接点到点猛传。

使用特权

评论回复
7
泰山特曲123| | 2018-6-7 20:02 | 只看该作者
yiyigirl2014 发表于 2018-6-5 13:59
确定好接收写入内容后,直接通过DMA哗哗的写入。

你试过?DMA是无法直接把数据写入FLAH的,因为写入FLASH必须通过操作FLASH写入寄存器。可以通过DMA把数据接收到RAM,够一页够再写入

使用特权

评论回复
8
捉虫天师| | 2018-6-7 22:32 | 只看该作者
泰山特曲123 发表于 2018-6-7 20:02
你试过?DMA是无法直接把数据写入FLAH的,因为写入FLASH必须通过操作FLASH写入寄存器。可以通过DMA把数据 ...

那就按页写。

使用特权

评论回复
9
mmuuss586| | 2018-6-7 22:37 | 只看该作者
最近不少人提到这个问题,我问下原厂看看;

使用特权

评论回复
10
icecut| | 2018-6-8 16:15 | 只看该作者
hid可以扩展bulk传输的.

使用特权

评论回复
11
Xflyan| | 2018-6-8 16:30 | 只看该作者
STM32F407VE,200K,整个过程约15S,擦除、写入、校验,算快还是慢???

使用特权

评论回复
12
yklstudent| | 2018-6-8 21:47 | 只看该作者
407擦除费时间,15秒正常

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

417

帖子

3

粉丝