No.51932 作者:myyv 邮件:jaljfklj@qq.com ID:112580 登陆:1次 文章数:2篇 最后登陆IP:211.148.168.210 最后登陆:2008/7/5 16:21:07 注册:2008/5/31 14:42:08 财富:107 发帖时间:2008/7/3 10:17:20 发贴者IP:211.148.168.210 标题:myyv:我使用LPC2368开发板,开发一款以SD卡为存储介质的大U盘,现在读写速度慢 摘要:No.51932我使用LPC2368开发板,开发一款以SD卡为存储介质的大U盘,现在读写速度慢 我使用LPC2368开发板,开发一款以SD卡为存储介质的大U盘,开发板上带有SD卡模块和USB模块,我使用的编译器为KEIL,所使用的代码为KEIL编译器携带的两个例子程序,一个是USBMEM程序,他是用LPC2368的内部存储器来模拟一个14K的U盘,另一个是SD-FILE程序,这个也是编译器带的SD卡的读写例子程序,我把这两个程序合并后,现在编译完全通过,没有错误也没有警告,但是现在的开发板连到电脑后,读取一个32M的压缩包需要一分钟,而写入需要十分钟,这个速度请问是不是过慢?我测试普通的U盘32M的压缩包读写基本不需要一分钟,SD卡的时钟频率脚现在是3M,SD卡的读写程序有两个时钟频率,高速模式选择代码如下 static void mci_set_speed (U32 speed) { /* Set a MCI clock speed to desired value. */ U32 i,clkdiv; if (speed == HIGH_SPEED) { /* Max. 20 MBit used for Data Transfer. */ clkdiv = 1; } else { /* Max. 400 kBit used in Card Initialization. */ clkdiv = 128; } MCI_CLOCK = (MCI_CLOCK & ~0xFF) | 0x300 | clkdiv; /* delay 3MCLK + 2PCLK before next write */ for ( i = 0; i < 100; i++ ); } 分频应该已经选择到最高频率,我看了其他的SD卡程序,时钟频率也在3M,这个应该没有问题吧,USBMEM模拟U盘这个程序在不连接SD卡程序的时候写32M用时为1分钟,SD卡读写10M为一分钟,那么这两个程序合并后读写32M的速度应该是在3分钟吧,为什么我现在读写32M确要10分钟之久,合并处的代码如下 USB读处改写后的函数: void MSC_MemoryRead (void) { DWORD n; if (Length > MSC_MAX_PACKET) { n = MSC_MA ......
>>返回讨论的主题
|