说明:" a3 b# H/ A" b7 `/ R" r 0. NAND Flash这块经常有人咨询,这里发布一个完整的解决方案,支持擦写均衡,坏块管理,ECC和掉电保护。 0 s( E3 \& I3 r3 a1 j3 x 早期的时候我们是用的自己做的NAND算法,支持滑块管理,擦写均衡,实际测试效果不够好,容易出问题,所以放弃了。' ~# [. I( i4 C 1. 此例子仅支持MDK4.74版本,因为RTX,RL-FlashFS,RL-USB都是来自MDK4.74的安装目录,使用MDK4.74才是最佳组合。1 r' k% o* P6 h+ C! Y* O! j 2. RL-FlashFS本身支持擦写均衡,坏块管理,ECC和掉电保护。其中使用掉电保护的话,请开启配置文件中的FAT Journal。3 W4 N( j0 h( N5 P 3. 在前几年的时候,有客户反应使用RL-FlashFS写入文件多后会写入越来越慢,原因是没有正确配置,加大文件名缓冲个数即可。 4. 当前使用的短文件名的库,使用长文件名的话请更换为长文件名的库,也在MDK的安装目录里面。 5. RL-FlashFS是FAT兼容的文件系统,也就是说可以在window系统上面模拟U盘,提供的程序代码已经做了支持。. t, [8 B& u3 W7 m0 r 6. RL-FlashFS的文件名仅支持ASCII,不支持中文,这点要特别注意。 7. 首次格式化后使用,读速度2.3MB/S左右,写速度3.2MB/S左右,配置不同的文件系统缓冲大小,速度有区别。: ]4 u9 J2 {/ z 8. RL-FlashFS的函数是标准的C库函数,跟电脑端的文件系统使用方法一样。1 i' `) S5 y8 D5 j 9. RL-FlashFS与FatFS的区别,FatFS仅是一个FAT类的文件件系统,擦写均衡,坏块管理,ECC和掉电保护都不支持。 这些都需要用户自己去实现。 10. UFFS,YAFFS这两款文件系统是不兼容FAT的,也就是无法在Windows端模拟U盘。 3 L0 C' g( K! }5 [% U0 [7 z & u x8 K8 c/ J; X 当前NAND的配置如下:, ]! V# g5 A' b Q/ L3 N . w3 E z' D0 [) U, [ RTX调试组件: 优化等级方面,各种优化等级和超给力的时间优化,可以任意搭配选择,都可以正常通过 9 \) N# w9 d' {- G' i1 g. x - O0 P0 Q g. Z0 u0 m% F ; y, K1 j# I: q6 k" m; r3 I+ v$ Z 使用说明如下: 请选择串口操作命令,电脑键盘打印数字即可: 首次使用,务必调用串口命令0,进行NAND Flash的低级格式化和文件系统格式化!! 0 - 低级格式化,显示NAND Flash容量和剩余容量 1 - 显示NAND Flash根目录下的文件 2 - 创建三个text文本并使用不同函数写入内容3 D' O9 G: O3 R5 @+ J8 @ 3 - 使用三个不同函数读取文本\r\n");* Z) F' u% h, C% K# y4 @) d 4 - 创建一个text文本并指定一个位置对其进行读写操作 5 - 删除文件夹和文件6 M5 q5 m; ]* b" r8 H0 ~1 Q 6 - 测试文件读写速度" g w2 U/ J& B/ f% ~ 7 - 写数据到CSV文件中 8 - 从CSV文件中读数据2 v; v- g+ o2 K$ H a - 打开NAND模拟U盘,注意是小写字母a: O% C5 b4 ^0 S4 D b - 关闭NAND模拟U盘,注意是小写字母b4 K7 F# }# z/ h1 K: W) l 7 }* @ p# e) Z d 例程下载: V4开发板: 基于STM32F103ZET6的RTX RL-USB RL-FlashFS的完整NAND解决方案.7z 5 k' a8 k, g+ S( B! N- | V5开发板: 基于STM32F407IGT6的RTX RL-USB RL-FlashFS的完整NAND解决方案.7z V6开发板: 基于STM32F429BIT6的RTX RL-USB RL-FlashFS的完整NAND解决方案.7z RL-USB和RL-FlashFS的文档: rlarm.chm * X) t" v3 z% _* g/ Y% `- @5 C- W K0 h6 d7 B- h$ p 通过串口做的命令行操作: 9 \: a- a7 j1 D _& e2 \ 模拟U盘操作效果: 电脑端复制文件进去,速度基本是300-500KB/S & Q" }) [. m4 D2 S$ q f3 f |
支持硬总!! |
最全USB HID开发资料,悉心整理一个月,亲自测试
USB Audio设计与实现
【MCU实战经验】+STM32F107的USB使用
圈圈发布USB图书第二版有感,以及分享一些我学习USB过程...
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32 USB-HID通信移植步骤STM32 USB HID键盘例程
【经验分享】在进行 USB CDC 类开发时,无法发送 64整数倍的数据
如何让CDC类USB设备批量接收64字节以上数据
用STM32F4实现的USB摄像头UVC,配合上位机可识别车牌
STM32 USB CDC 虚拟多串口