|  | 
 
 楼主|
发表于 2025-9-1 09:27:55
|
显示全部楼层 
| 大家如果需要更快的速度,可以来技术支持 可以增加FAT表和文件大小扇区的CACHE功能,这样写文件的时候基本不用读FAT表扇区,只要写
 数据扇区就可以了。可以再提高速度。
 下面是抓取的加了CHAHE写扇区图,可以看到写的时候基本不用读扇区。write_file()函数一次读写32KB数据。
 
   
 
 增加了建文件分配空间的函数,可以加快顺序写文件的速度。
 create_file_with_preallocate("aaaaaaaaaaaaaa.rar",30540551);
 HANDLE1 = open_file_for_preallocate("aaaaaaaaaaaaaa.rar");
 用函数open_file_for_preallocate()打开的文件,写文件的时候
 if(write_file(HANDLE1,buf, cc)==Disk_is_full)写的长度必须是512或它的倍数,
 不可以是其它的非对齐的长度。
 
   
 分配空间的函数可以加快写速度。
 在STM32H7上测试的速度如下面:
 
 最新_1_用了preallocate功能, 一次写64K字节。
 森秀的速度: 写文件4.7MB/S
 16GB SD卡的速度:12.5MB/S
 32GB SD卡的速度:8.3MB/S
 
 上面的数据比XP上稍微慢一点,可能是PC机的CPU频率快一点。
 大家需要分配空间函数的可以来技术支持。
 
 
 
 | 
 |