walnutcy

STM32烧录的瓶颈在哪

0
阅读(3412)

把这篇讨论整理过来,因为21ic里找老贴太难了。

walnutcy 发表于 2009-1-5 21:23 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖


楼主: STM32烧录的瓶颈在哪?

找了半天也没找到以前的那个讲usb时序的帖子,
就新开一个了。

现在在做一个usb的boot,基本功能已完成,只是下载速度不快,
读取:50KB左右,下载20KB左右。  升级一个512K的芯片需要约22秒。

不知道理论可以做到多少,是因为双缓冲的问题,还是flash写的问题??

明天得继续查了,

 

 

签名:

┏━━━━━━━━━━━━━━━━━┓
┃                                  ┃
┣━━━━━━━━━━━━━━━━━┫
┃http://blog.ednchina.com/walnutcy/┃
┗━━━━━━━━━━━━━━━━━┛
青藤门客的播报站

walnutcy 发表于 2009-1-5 21:53 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

2楼: 明天主要更改下usb传输和flash写,再试试

 

 

 

签名:

┏━━━━━━━━━━━━━━━━━┓
┃                                  ┃
┣━━━━━━━━━━━━━━━━━┫
┃http://blog.ednchina.com/walnutcy/┃
┗━━━━━━━━━━━━━━━━━┛
青藤门客的播报站

香水城 发表于 2009-1-5 22:28 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

3楼: STM32烧录的瓶颈主要在Flash的写入

不管是哪种传输方式,UART、I2C、USB都比写入Flash要快很多。

 

 

签名:

walnutcy 发表于 2009-1-5 22:34 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

4楼: 香帅在啊, 今天找flash写的资料,没找到,不知道

写的速度可以提高到多少,要是能提高一倍左右就快了,呵呵,

 

 

签名:

┏━━━━━━━━━━━━━━━━━┓
┃                                  ┃
┣━━━━━━━━━━━━━━━━━┫
┃http://blog.ednchina.com/walnutcy/┃
┗━━━━━━━━━━━━━━━━━┛
青藤门客的播报站

香水城 发表于 2009-1-5 22:38 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

5楼: 《STM32F10x闪存编程手册》就是讲如何写Flash的

还有有关读写保护的操作说明。

点击看大图

 

签名:

computer00 发表于 2009-1-5 23:02 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

6楼: 差不多就这个速度拉~~~~

 

 

 

签名:

***********************声明*********************
本人所有发言均为个人观点。由此帖带来的后果,    
本人一般不予负责。在您相信本帖之前,请慎重考虑!
                                     
                                      Computer00 
访问电脑圈圈的USB专区


访问电脑圈圈的博客

香水城 发表于 2009-1-6 08:57 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

7楼: STM32 Flash编程的时间

下表是STM32 Flash编程时间参数,按照最大时间计算,对一个内置512KB的STM32编程可以如下计算:
  1)编程每2个字节时间为40~70us,则编程512K需要
       512 * 1024 / 2 * (40~70us) = 10.5~18.5s
  2)擦除一页的时间为20~40ms,则擦除256页需要
       256 * (20~40ms) = 5.1~10.2s
  3)整体擦除的时间为20~40ms

结论:编程512K总共需要 15~28秒。

如果采取边下载边编程的方式,则肯定以为下载速度太慢——35K/s~18.7K/s


* - 本贴最后修改时间:2009-1-6 11:21:32 修改者:香水城

点击看大图

 

签名:

香水城 发表于 2009-1-6 09:58 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

8楼: 楼主可以去看看STM32的USB开发包中的DFU例程

刚刚想到,楼主所要的功能不就是DFU吗?

 

 

签名:

Tiger5 发表于 2009-1-6 11:12 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

9楼: 22秒很快了...我现在都要1分多.

 

 

 

xijing0508 发表于 2009-1-6 11:14 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

10楼: 回复 7楼

1)编程每2个字节时间为40~70ms,则编程512K需要

是us,ms得多慢

 

 

香水城 发表于 2009-1-6 11:20 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

11楼: 哈哈,是笔误,好在有一张表格

随后的计算也是按照us来算的。

 

 

签名:

xijing0508 发表于 2009-1-6 11:25 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

12楼: 回复

3)整体擦除的时间为20~40ms
s

 

 

walnutcy 发表于 2009-1-6 20:30 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

13楼: 上班时间不能上网,刚看到香帅的分析,

跟我的实测结果一样,

写flash时等待时间比较长。
功能已经做好了,DFU没仔细看,自己拿U盘的例程改了一下,
基本功能都已经实现了,  

 

 

签名:

┏━━━━━━━━━━━━━━━━━┓
┃                                  ┃
┣━━━━━━━━━━━━━━━━━┫
┃http://blog.ednchina.com/walnutcy/┃
┗━━━━━━━━━━━━━━━━━┛
青藤门客的播报站

walnutcy 发表于 2009-1-6 20:34 ST MCU ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

14楼: 今天还在bus hound测了下,

没采用双缓冲,传输速度还是不错的,

1K的数据只需要3ms,相当于速度在333KB/s,即接近2.7Mb/s,

下载时间未能做到20s以内,

读取与下载的过程中,传控制部分占了一些时间,我的做法是分成1K的小块再去下载。

 

 

签名: