STM32 SD+算术运算指今所占周期

[复制链接]
3281|7
 楼主| 06quzhi 发表于 2009-9-24 18:54 | 显示全部楼层 |阅读模式
请路过的朋友指点啊!
我在SD卡读操做时,顺序读音60个BLOCK,速度可以达到达2.4M,加入地址运算符后只有不到期120K!
有谁知道在SMT32中,各种运算符所占的时间是多少?如%,*,+等等!
 楼主| 06quzhi 发表于 2009-9-24 18:58 | 显示全部楼层
补充:
加运算符前代码:BlockSize=512     NumberOfBlocks=60   
  Status = SD_ReadMultiBlocks(0x00, Buffer_MultiBlock_Rx, BlockSize, NumberOfBlocks);


加运算符控制地址之后:
   for(i=30;i>0;i--)
   {
    printf("SD read\r\n");
    Status = SD_ReadMultiBlocks(((i%10)*512), Buffer_MultiBlock_Rx, BlockSize, 2);
   }
seawwh 发表于 2009-9-25 09:20 | 显示全部楼层
这里不应该是算术指令导致的延时,是由于每次读2个block造成的。

一次连读10blocks 需要的时间大大小于,每次读1block的时间x10.
 楼主| 06quzhi 发表于 2009-9-25 13:13 | 显示全部楼层
我顺序读60个block为2.4M/S随机读60个速度为640k/s,觉的主要的时间是浪费在每次重新找地址上,有没有什么办法可以提高随机读的速度?
IJK 发表于 2009-9-25 14:06 | 显示全部楼层
顺序读60个block为2.4M/S随机读60个速度为640k/s

这是正常现象,几乎所有的卡(SD、MMC等等)和U盘都是这样,这是NAND FLASH的特性造成的。只有在SSD(固态硬盘)之类的设备里面,使用了不少DRAM进行缓存后,才能提高随机读的速度
kiton_law 发表于 2009-11-29 05:08 | 显示全部楼层
printf???????
楼主不知道这函数的威力吗?号称速度终结者。
xsgy123 发表于 2009-11-29 20:44 | 显示全部楼层
这个时间肯定是微妙级的吧
gxgclg 发表于 2009-11-30 09:38 | 显示全部楼层
运算的时间肯定很快,知道这个时间意义不大,也不好测
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

11

帖子

0

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