你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【原创】开源基于RL-USB和FlashFS的完整NAND方案,稳定可量产

[复制链接]
baiyongbin2009 发布时间:2018-6-12 15:43
本帖最后由 baiyongbin2009 于 2018-6-12 15:45 编辑 * g* O& X# @, C/ {/ j0 v! s
4 T. b2 L# B& K" ~
1 X8 z- O& Z2 P1 e' p
说明:' X# Z& M* J. L3 ~( K7 M

- E  V' s' @8 g1 Z! w* S0. NAND Flash这块经常有人咨询,这里发布一个完整的解决方案,支持擦写均衡,坏块管理,ECC和掉电保护。早期的时候我们是用的自己做的NAND算法,支持滑块管理,擦写均衡,实际测试效果不够好,容易出问题,所以放弃了。/ n1 b- B# I) p% m4 t) ]# e
1. 此例子仅支持MDK4.74版本,因为RTX,RL-FlashFS,RL-USB都是来自MDK4.74的安装目录,使用MDK4.74才是最佳组合。
: S1 e9 H1 b0 _. m2. RL-FlashFS本身支持擦写均衡,坏块管理,ECC和掉电保护。其中使用掉电保护的话,请开启配置文件中的FAT Journal。
, G( \# R3 a# U; y1 e3. 在前几年的时候,有客户反应使用RL-FlashFS写入文件多后会写入越来越慢,原因是没有正确配置,加大文件名缓冲个数即可。
2 v# m+ @4 G  A  S+ F7 F  D8 ~4. 当前使用的短文件名的库,使用长文件名的话请更换为长文件名的库,也在MDK的安装目录里面。
; U1 v' v7 t7 L& z) m" Q5. RL-FlashFS是FAT兼容的文件系统,也就是说可以在window系统上面模拟U盘,提供的程序代码已经做了支持。
0 G$ ~8 ~4 H, P, P6. RL-FlashFS的文件名仅支持ASCII,不支持中文,这点要特别注意。
0 U5 ?) r% j/ l5 ~/ q* J  X* x7. 首次格式化后使用,读速度2.3MB/S左右,写速度3.2MB/S左右,配置不同的文件系统缓冲大小,速度有区别。2 }; P  Z+ R; ?6 q+ p
8. RL-FlashFS的函数是标准的C库函数,跟电脑端的文件系统使用方法一样。4 m$ p: z1 _  w
9. RL-FlashFS与FatFS的区别,FatFS仅是一个FAT类的文件件系统,擦写均衡,坏块管理,ECC和掉电保护都不支持。这些都需要用户自己去实现。9 Y" Q1 t6 X9 r# @7 |
10. UFFS,YAFFS这两款文件系统是不兼容FAT的,也就是无法在Windows端模拟U盘。
8 G3 z5 T1 C; V* x+ u6 h* A2 }9 K1 L
9 i: M# X! Q5 Q; ?" _8 `, z
当前NAND的配置如下:. |  P+ G9 u  ^) t% r; n
2.1.png
$ ?) o' L$ x. A) W# ^% C: @0 d( E

; D! ?4 z: Z' r( E+ F  t; f2 MRTX调试组件:

% }: ?! b/ h0 I- J$ M+ X9 ^
2.2.png 9 Q! ]6 k* I0 V

7 {! S1 H+ q8 c/ Z4 f, o优化等级方面,各种优化等级和超给力的时间优化,可以任意搭配选择,都可以正常通过

5 O) ~4 Q5 O1 J* E* e( a
2.3.png
' H6 u+ b( j! I6 I# T7 a$ O) S
: I/ x3 q0 G; o, j4 ]  f/ Y, W0 z- `1 t0 _5 W7 D2 q" Z8 u
; U: Z* G7 |$ C) ^) w
使用说明如下:( S* j% M. L( M

; ~+ U% N- T6 r* v请选择串口操作命令,电脑键盘打印数字即可:* q% M0 l# h8 `+ X- |/ p% z+ s
首次使用,务必调用串口命令0,进行NAND Flash的低级格式化和文件系统格式化!!
+ v+ H- }; N. A$ u: x; Z  r0 - 低级格式化,显示NAND Flash容量和剩余容量
7 b0 D5 x2 C  V; y* S1 - 显示NAND Flash根目录下的文件
8 k. T0 W- k4 S% T$ p2 - 创建三个text文本并使用不同函数写入内容
: {3 D5 O% ^6 L/ l2 K3 - 使用三个不同函数读取文本\r\n");* ]( P4 Q% ?+ P* y2 Z
4 - 创建一个text文本并指定一个位置对其进行读写操作5 I# s& ]8 J+ y" x+ [
5 - 删除文件夹和文件
2 y2 b! v! D4 e* e6 - 测试文件读写速度; j3 [) h* K, \2 ^$ O
7 - 写数据到CSV文件中2 E" E, }  q$ g/ K
8 - 从CSV文件中读数据* N8 D; w( w& Z7 j# F" ]
a - 打开NAND模拟U盘,注意是小写字母a3 a) P3 U2 K, p' l0 f
b - 关闭NAND模拟U盘,注意是小写字母b
- E  w% Z2 m  u, v6 h" m
4 N4 N! g; B' Y* ~  m5 c3 j% U9 n7 }' c9 N) h3 ]8 P
例程下载:
) V; W# _1 ~: X) i+ O: w5 ^/ z. lV4开发板: 基于STM32F103ZET6的RTX RL-USB RL-FlashFS的完整NAND解决方案.7z
0 o  w) h! K( UV5开发板: 基于STM32F407IGT6的RTX RL-USB RL-FlashFS的完整NAND解决方案.7z
9 ~) G4 @  P3 ?! KV6开发板: 基于STM32F429BIT6的RTX RL-USB RL-FlashFS的完整NAND解决方案.7z
9 a1 L7 `  @9 F! e9 `+ \% Z/ ~RL-USB和RL-FlashFS的文档: rlarm.chm
; M! c; i' j0 u0 U  _1 T- d! X% a  r/ L! k( R
1 b: g0 M1 b) x( g7 u
通过串口做的命令行操作:( I+ i, w  G& f3 n5 N- p  P
2.4.jpg ) I) t1 Q6 E3 ^

; y# \9 t/ C; I& j8 K5 m模拟U盘操作效果:
1 M, O8 I: s' f8 e  [6 ~- l# l 2.5.png ! |) O& ~; R1 R/ f1 I
2 l+ i, ]  M% U. [+ g
电脑端复制文件进去,速度基本是300-500KB/S
0 ?& e( h. M. Q
2.6.png
* [9 Y  x- H! O: W4 {
收藏 4 评论8 发布时间:2018-6-12 15:43

举报

8个回答
stary666 回答时间:2018-6-13 09:07:35
牛气啊,,,,,,
jiaxiaokui 回答时间:2018-6-14 14:40:54
谢谢分享~
hi201803 回答时间:2018-8-2 19:04:38
学习
西点钟灵毓秀 回答时间:2018-8-3 10:28:37
666掰
未来战士wlzs 回答时间:2018-12-17 17:31:14
666,学习
hmanhcc 回答时间:2019-3-12 12:19:29
只能用在 MDK4.74版本 ? 那不就意味  得走回頭 用舊版 MDK  ,  新版MDK不支持  那不合道理啊 !
9 A% n. T1 R; F" _" F. ]
hmanhcc 回答时间:2019-3-12 12:23:27
我試了 KEIL 新版  MDK  ,  finit("N0:")    需用到 LIB 元件庫 ,  真的 就都過不去! 無法使用
6 J% P3 x# M+ f+ [4 o2 Q
baiyongbin2009 回答时间:2019-3-12 17:04:04
hmanhcc 发表于 2019-3-12 12:19
+ d2 E" u- _4 x3 M只能用在 MDK4.74版本 ? 那不就意味  得走回頭 用舊版 MDK  ,  新版MDK不支持  那不合道理啊 !
4 {4 n  t. H! Q ...
5 j) Q* @1 w7 @
不是,主要是没法比撸调试组件,不方便调试状态查看任务运行状态。还有哪里不理解的找我。
8 J0 O0 L* s4 o: ?- J$ v# n9 x- b( v
使用MDK5,看此贴即可:, q2 h: r- R% K/ }+ \6 f
V4,V5,V6开发的所有RTX例子都可以使用最新的MDK5.25进行编译测试了,仅需加一个命令去掉警告即可
8 A( Z# b; @; [' _3 q2 rhttp://forum.armfly.com/forum.ph ... 6086&fromuid=58, I8 ?! K5 n, _* P. ?* F
& l$ L5 U: O  E# q

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版