OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3124|回复: 4

STM32F103外部SPI FLASH 模拟U盘拷贝速度问题

[复制链接]

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-11-30
在线时间
92 小时
发表于 2020-8-6 10:28:31 | 显示全部楼层 |阅读模式
10金钱
论坛各位大侠好:
       小弟项目中用到SPI FLASH 模拟U盘。选用STM32F103  + W25Q128
      参考原子哥的代码,原子哥把 SPI FLASH的扇区设置为512字节,SPI FLASH的最小擦除单位是4K字节。所以存在读修改写的问题,导致一个扇区重复写。U盘拷贝的速度只有7KBytes/s。
我把扇区设置成4K字节,最小擦除单位也是4K字节。去掉了重复写的问题,U盘拷贝的速度提高到了50KByes/s。 我还是觉的拷贝速度慢。 @Y3}%QB[`SKL2((WMI3R4C1.png
相同容量的flash,使用越小的擦除单位,那么擦除完整块flash就越耗时,因此我想能不能一次擦32K或64K,目的是提高拷贝速度。
我修改程序以后,在32k下无法格式化U盘。64K下都不会蹦出U盘。
下面是相应的配置修改。
  1. Mass_Memory_Size[0]=1024*1024*16;        //前16M字节
  2.         Mass_Block_Size[0] =1024*32;                                        //设置SPI FLASH的操作扇区大小为4096
  3.         Mass_Block_Count[0]=Mass_Memory_Size[0]/Mass_Block_Size[0];
  4.        
  5.         Data_Buffer=malloc(BULK_MAX_PACKET_SIZE*512);        //在堆区为USB数据缓存区申请内存
  6.         if (Data_Buffer == NULL)                                                                                        //如果申请内存失败卡死在这里
  7.         {
  8.                 while(1);
  9.         }
  10.         Bulk_Data_Buff=malloc(BULK_MAX_PACKET_SIZE);        //在堆区申请内存       
  11.         if(Bulk_Data_Buff == NULL)                                                                                //如果申请内存失败卡死在这里
  12.         {
  13.                 while(1);
  14.         }
复制代码
debug调试发现没有进入uint16_t MAL_Write(uint8_t lun, uint64_t Memory_Offset, uint32_t *Writebuff, uint16_t Transfer_Length)函数。该函数都没有进入,暂且不用考虑flash底层驱动,我认为更多的可能是USB配置或是别的地方出问题了。希望原子哥以及论坛各位大神拔刀相助。 CAN_Loader_USB_APP.rar (7.49 MB, 下载次数: 22)

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-11-30
在线时间
92 小时
 楼主| 发表于 2020-8-6 22:20:46 | 显示全部楼层
回复

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-11-30
在线时间
92 小时
 楼主| 发表于 2020-8-6 22:21:18 | 显示全部楼层
回复

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-11-30
在线时间
92 小时
 楼主| 发表于 2020-8-6 22:22:12 | 显示全部楼层
@正点原子   原子哥出来救火呀
回复

使用道具 举报

11

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2016-11-30
在线时间
92 小时
 楼主| 发表于 2020-8-7 20:11:55 | 显示全部楼层
不要沉,大家用SPI FLASH模拟U盘的速度是多少呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-13 18:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表