今天使用你的例子测试了下FlashFS和RL-USB驱动,得出如下结论:
1、FlashFS的部分功能比FATFS要少许多,例如没有新建文件夹的函数,不支持中文文件名,不支持长文件名的文件夹等等,但是FlashFS也有自己的特点,比如均衡,支持的flash类型多,稳定性高等等。
下面是FlashFS支持的api
下面是FATFS支持的:
FatFs provides various filesystem functions for the applications as shown below. - File Access
- Directory Access
- File and Directory Management
- f_stat - Check existance of a file or sub-directory
- f_unlink - Remove a file or sub-directory
- f_rename - Rename/Move a file or sub-directory
- f_chmod - Change attribute of a file or sub-directory
- f_utime - Change timestamp of a file or sub-directory
- f_mkdir - Create a sub-directory
- f_chdir - Change current directory
- f_chdrive - Change current drive
- f_getcwd - Retrieve the current directory and drive
- Volume Management and System Configuration
- f_mount - Register/Unregister the work area of the volume
- f_mkfs - Create an FAT volume on the logical drive
- f_fdisk - Create logical drives on the physical drive
- f_getfree - Get total size and free size on the volume
- f_getlabel - Get volume label
- f_setlabel - Set volume label
- f_setcp - Set active code page
2、RL-USB驱动的稳定性和兼容性比STM32F407自带的好很多很多,同样的板子,1个FAT16的1G TF卡转U盘,1个FAT32的8G TF卡转U盘,1个FAT32的16G U盘,RL-USB驱动时3个U盘随意插拔读写,没有出现1次不成功或者U盘不识别的。但是使用407自带的驱动,几乎每次都出现加载U盘驱动失败的情况,也有可能是我的驱动+FATFS移植的不好,造成407自带的USB驱动兼容性较差。
3、使用FSN_CM3.lib库时文件名是支持ASCII码格式的长文件名的,但是文件夹还是不支持长文件名,不知为什么
4、demo文件中 DemoFlashFS 函数存在板子上电时如果不插U盘,第一次插入时U盘时会出现U盘没有被挂载器问题(仿真发现是没有进行U盘初始化),拔出,第二次插入后就好了。我修改了这个问题,硬汉哥看看对不对。
|