数据写入bug

发表在 SFUD2020-2-15 00:01 [复制链接] 3 114

附上调试log
  O5 }2 H( W9 |4 Y; W: o
  1. sh >sf probe spi304 M# E8 H% p" L" x
  2. set spi freq 67166666) u! Y$ ~+ {3 R2 U+ D8 y
  3. [SFUD] Find a GigaDevice flash chip. Size is 16777216 bytes.
    $ i$ `  X: d6 ~9 D
  4. [SFUD] sf_cmd flash device is initialize success.
    / O* J  D8 a: V( Q1 J* A+ K
  5. 16 MB sf_cmd is current selected device.  m0 K! i( E' [' ]" r, P
  6. msh >sf read 0x200000 32
    % l8 r, c% Y) ?3 r7 v: Y
  7. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:4 ~: P( A. ?* X$ V: W" ~/ E& g' S0 q
  8. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F2 N+ w. @9 }3 m2 c
  9. [00200000] 01 02 03 04 05 FF FF FF FF FF FF FF FF FF FF FF ................
    " S" F, u! |( r7 l# F2 O
  10. [00200010] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................                                                            8 J9 v9 U( z) @; V1 ~2 P4 w
  11. & c! p0 V1 w3 {0 B9 [0 \# F/ }
  12. msh >sf write 0x200000 8 8 8 8 8 8
    + q0 C7 t( t$ v: n7 Y8 B
  13. Write the sf_cmd flash data success. Start from 0x00200000, size is 6.
    * ^4 `1 k5 F) \0 h8 f
  14. Write data: 8 8 8 8 8 8 .
    6 P8 T6 w" g, @+ C/ J
  15. msh >sf read 0x200000 32
    6 y9 U* P6 |8 U& y7 `  |+ H
  16. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:
    " n  b( B- \& e
  17. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    : X% I% c7 P- s# t" c/ M& [
  18. [00200000] 00 00 00 00 00 08 FF FF FF FF FF FF FF FF FF FF ................
    2 I8 ]% y9 t  v3 Y  |) V; M6 J
  19. [00200010] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................7 b( i8 Y! `+ j) `7 ~& e0 q6 p& c; S& ~
  20. 5 D! G1 M4 y0 |* l& P8 k1 u
  21. msh >sf write 0x200010 8 8 8 8 8 8  3 R  w4 O7 Z, Z: ?
  22. Write the sf_cmd flash data success. Start from 0x00200010, size is 6.- m5 ?: j! x; |" D
  23. Write data: 8 8 8 8 8 8 .
    # Y& |+ J: ?& r
  24. msh >sf read 0x200000 32
    & j3 c4 {3 W1 D) B  e; h9 Y' D  z
  25. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:
    & M4 c5 V2 p; {% a; l6 p2 ^
  26. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    $ Z% ^8 X2 Y+ P" v
  27. [00200000] 00 00 00 00 00 08 FF FF FF FF FF FF FF FF FF FF ................* Y1 Q7 J- n) S% p
  28. [00200010] 08 08 08 08 08 08 FF FF FF FF FF FF FF FF FF FF ................
    0 M0 c3 s' S% N1 J: B

  29. 7 r4 j) y6 V( J1 s) d
  30. msh >sf erase 0x200000 1
    & S5 {- V  f- o, p
  31. Erase the sf_cmd flash data success. Start from 0x00200000, size is 1.
    3 U* p% m9 H% K+ l& F' v# a( j, O
  32. msh >sf read 0x200000 32
    # E7 {. M$ N$ t8 A% c( _5 D
  33. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:
    * k% I' y9 U1 e9 l/ r! a' O$ l! r
  34. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F5 ?. s% |" s( \, ]; O  e; i$ N
  35. [00200000] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................# K7 l9 d  _5 t. d; n
  36. [00200010] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................7 |3 F* l& L# n1 F1 y% m

  37. 7 i. ~, b. O4 z: ~- s2 m8 C. e: Y
  38. msh >sf write 0x200010 8 8 8 8 8 8
      p. X9 C  m: e5 E2 G8 D/ k
  39. Write the sf_cmd flash data success. Start from 0x00200010, size is 6.
    7 Y6 Q0 \4 x* T% ~
  40. Write data: 8 8 8 8 8 8 .
    $ T6 n; F1 \8 O. X* G2 _7 |5 {
  41. msh >sf read 0x200000 32
    # {" b/ r, f8 G1 m
  42. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:
    * j5 \& x1 E$ y* J' ?
  43. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    ' ~9 R4 E$ N, p0 Z8 D: t
  44. [00200000] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
    " G/ n. Z! n7 Z% q! ?
  45. [00200010] 08 08 08 08 08 08 FF FF FF FF FF FF FF FF FF FF ................9 C/ h! x+ q* E; V; ?
  46. + R$ u' X1 M1 w; O* \, }; d. _
  47. msh >sf write 0x200000 8 8 8 8 8 8  
    9 @2 J8 U+ `8 c& {  t% u$ k$ c
  48. Write the sf_cmd flash data success. Start from 0x00200000, size is 6.6 {* G5 d" [. O% g. e3 z
  49. Write data: 8 8 8 8 8 8 .
    + M6 k; R; @% Y: I. ~  ]
  50. msh >sf read 0x200000 32
    + w4 g, Z& ~; d
  51. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:
    / t+ P, E. k$ Q0 G% _$ d
  52. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  \1 J" m7 H; i5 j
  53. [00200000] 08 08 08 08 08 08 FF FF FF FF FF FF FF FF FF FF ................/ C6 Y) f7 q' j9 d% P9 I# D
  54. [00200010] 08 08 08 08 08 08 FF FF FF FF FF FF FF FF FF FF ................
    6 J& ~$ K- T( T# u' K5 Q! O

  55. 2 F9 B2 i8 X- V
  56. msh >sf write 0x200000 7 7 7 7 7   
    , C0 B% M" _" w7 i
  57. Write the sf_cmd flash data success. Start from 0x00200000, size is 5.6 A; E6 ~6 @0 `! H  s
  58. Write data: 7 7 7 7 7 .3 U/ [9 a9 ^2 F
  59. msh >sf read 0x200000 32- \6 W6 q- O, \
  60. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:* j. e' x& r5 y' `' |- _
  61. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    ) B) U( h* E$ m7 W
  62. [00200000] 00 00 00 00 00 08 FF FF FF FF FF FF FF FF FF FF ................' F7 f9 D0 Y& D* w6 j  r3 |- W7 a
  63. [00200010] 08 08 08 08 08 08 FF FF FF FF FF FF FF FF FF FF ................
复制代码
在这个测试中发现,写入数据,若写入的位置原本是FF的话,则可以写入,但若不是FF ,则无法写入,重新erase之后,存储的位置又变成FF,则可以再次写入
9 a( I+ B0 O  T' ^8 }# t. ]. {! V/ Q在调试SFUD中发现的问题。有人清楚这是怎么一回事么?( n6 _- H5 ]/ o! w9 p" [, C4 [
3 \/ l1 q" p- V% n/ @  L
0 N* Y6 |" ]8 `7 t+ I& p7 K
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2020-2-15 00:19:23 | 显示全部楼层
第二个问题,SFUD宏配置中使能了SFDP,然后调用erase ,直接擦除4096个字节。是这样的么?
使用道具 举报 回复
发表于 2020-2-17 16:07:04 | 显示全部楼层
spi flash的物理特性就是write的时候可以把 bit 由1变为0,可以简单的理解成与上你写的数据。
, t4 c9 _) L8 v& w9 X, r  oerase的时候,把bit 由0变成1。
使用道具 举报 回复
发表于 2020-2-17 16:47:59 | 显示全部楼层
_Tony_ 发表于 2020-2-17 16:07
8 H0 w" c8 }" t  W& k  rspi flash的物理特性就是write的时候可以把 bit 由1变为0,可以简单的理解成与上你写的数据。
, m8 ?. o8 z+ @+ Y7 Jerase的时候 ...

( T# C$ j/ m5 V4 J( N4 o$ O明白了,那就是每次写入前都需要擦除。sfud只是提供了底层的函数,要实现产品上的读取,写入,还需要fal和文件系统来完成吧。
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

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