数据写入bug

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

附上调试log
& e. M8 F# L# j' I& l& T/ Z
  1. sh >sf probe spi30$ F# J# P* K1 b3 a3 Z. K
  2. set spi freq 67166666
    8 K. a, n" j1 H  K% g# a7 t
  3. [SFUD] Find a GigaDevice flash chip. Size is 16777216 bytes.
    ! Q6 i6 f3 m& {, n6 M# y
  4. [SFUD] sf_cmd flash device is initialize success.
    1 k& D3 A( w. K; [/ C
  5. 16 MB sf_cmd is current selected device.
    $ n- Z" z+ L" m$ W
  6. msh >sf read 0x200000 32! Y3 s! ^" `# c% t( f2 L3 m
  7. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:4 y# Z, L; ]/ ^& H6 ^- @4 C
  8. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F* T$ D/ D1 i& J3 q1 Q( ]1 N; G
  9. [00200000] 01 02 03 04 05 FF FF FF FF FF FF FF FF FF FF FF ................* A  L+ \* |% {7 ?: @
  10. [00200010] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................                                                            + k3 D. d" w1 C7 \! V0 S5 K* J
  11. ; G1 Z- ]& t- o# T( M
  12. msh >sf write 0x200000 8 8 8 8 8 8 & H5 t, }$ l. W& E# k8 n; d
  13. Write the sf_cmd flash data success. Start from 0x00200000, size is 6.
    + B) D: K. T% Z* d% e
  14. Write data: 8 8 8 8 8 8 .) V/ W: j1 B# n; ^* ?
  15. msh >sf read 0x200000 32
    8 a: J( C) _0 I0 Z5 r
  16. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:# X* U" {4 V  h* f& Q9 ?/ L% z
  17. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F0 y  [& B" X3 w
  18. [00200000] 00 00 00 00 00 08 FF FF FF FF FF FF FF FF FF FF ................3 F- {6 y8 R1 u  t
  19. [00200010] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................3 A+ d* E. T5 }& P

  20. 1 v/ _- _6 d* H' O6 H
  21. msh >sf write 0x200010 8 8 8 8 8 8  . u9 F2 J$ v. v- X! N: R
  22. Write the sf_cmd flash data success. Start from 0x00200010, size is 6.
    : c/ h$ j( l9 R2 C2 K8 ]
  23. Write data: 8 8 8 8 8 8 .! m& ]4 x& k% n2 U
  24. msh >sf read 0x200000 32! W& r. ?  @7 E; j5 C: t- P. B
  25. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:( G, U( ]6 S  f/ b& b5 l: c
  26. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F4 @( S1 r+ i- y- t" f  Y, {6 T9 X
  27. [00200000] 00 00 00 00 00 08 FF FF FF FF FF FF FF FF FF FF ................  H+ M! ^7 x. W0 U1 O5 x
  28. [00200010] 08 08 08 08 08 08 FF FF FF FF FF FF FF FF FF FF ................0 {* i0 b+ R# Q2 z! N! n

  29. " u  y9 x5 w) I7 E: j+ d3 a2 c
  30. msh >sf erase 0x200000 1# E) J( S2 q: ]7 F6 @8 Q; w
  31. Erase the sf_cmd flash data success. Start from 0x00200000, size is 1.; U* t  G. Z& b
  32. msh >sf read 0x200000 321 I9 G$ g+ }" Y2 p& m
  33. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:; p5 i) F1 y; E! m# P" k
  34. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    ' f# f8 w* z- \5 x5 o) v" S
  35. [00200000] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
    / ?- @0 Y6 ~/ L
  36. [00200010] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................$ V+ p" t7 w: X! ~

  37. ( [1 R: D9 s8 e
  38. msh >sf write 0x200010 8 8 8 8 8 8 . }! G; X2 U. P+ V  n. ~5 K
  39. Write the sf_cmd flash data success. Start from 0x00200010, size is 6.5 c- {" M0 v1 \& O% M7 G- N
  40. Write data: 8 8 8 8 8 8 .0 ]% X# `1 \* ]  X9 P/ \
  41. msh >sf read 0x200000 322 f* x" A0 d  Z1 `
  42. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:
    1 a7 w8 f6 {5 @" ~* W* o+ H
  43. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    ( |, b4 `* }5 [2 }
  44. [00200000] FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
    ) @0 O( T' W& a7 x! d& c
  45. [00200010] 08 08 08 08 08 08 FF FF FF FF FF FF FF FF FF FF ................# ]* U# f2 s- `7 L9 C
  46. 1 j+ X& I$ R6 b. ^6 [. K0 `
  47. msh >sf write 0x200000 8 8 8 8 8 8  
    ) c: B+ z! C7 d
  48. Write the sf_cmd flash data success. Start from 0x00200000, size is 6.
    0 I: D! G5 g+ G, o
  49. Write data: 8 8 8 8 8 8 .
    0 K8 p5 B7 s# C& s" s' D
  50. msh >sf read 0x200000 32- C; S3 ~& R3 C. E( H+ a: b
  51. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:
    9 c' u& s0 ^5 H6 F! o
  52. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F& C1 p/ @1 c" N) _  P4 f* w" V
  53. [00200000] 08 08 08 08 08 08 FF FF FF FF FF FF FF FF FF FF ................' q% o( W: G' m. V7 S/ ]
  54. [00200010] 08 08 08 08 08 08 FF FF FF FF FF FF FF FF FF FF ................- Q3 f1 s' Y& B$ k: ]9 q  X, [& E
  55. 9 ^& M( T& P0 w, L
  56. msh >sf write 0x200000 7 7 7 7 7   
    ! }7 V9 e, E  k: {) b* d
  57. Write the sf_cmd flash data success. Start from 0x00200000, size is 5.
    9 q: A+ `/ B5 d8 w: x3 W
  58. Write data: 7 7 7 7 7 .) ^/ ?% ]; R* Q: `( h9 L
  59. msh >sf read 0x200000 32
    ' \1 U6 v4 _8 C6 r! f- f
  60. Read the sf_cmd flash data success. Start from 0x00200000, size is 32. The data is:4 L" U! h! ?  b( H9 A3 ^+ _0 |
  61. Offset (h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  i" @% c2 ]* j2 |* {* _" ^/ {
  62. [00200000] 00 00 00 00 00 08 FF FF FF FF FF FF FF FF FF FF ................5 \" x$ f7 z  O% Z2 d' l+ [$ l- Z
  63. [00200010] 08 08 08 08 08 08 FF FF FF FF FF FF FF FF FF FF ................
复制代码
在这个测试中发现,写入数据,若写入的位置原本是FF的话,则可以写入,但若不是FF ,则无法写入,重新erase之后,存储的位置又变成FF,则可以再次写入# Y. j  {8 h' I/ y
在调试SFUD中发现的问题。有人清楚这是怎么一回事么?7 H, T2 `2 |( r3 a' a

9 k& {6 L0 d$ I$ n$ }, V
) z4 K6 `& M+ h
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2020-2-15 00:19:23 | 显示全部楼层
第二个问题,SFUD宏配置中使能了SFDP,然后调用erase ,直接擦除4096个字节。是这样的么?
使用道具 举报 回复
发表于 2020-2-17 16:07:04 | 显示全部楼层
spi flash的物理特性就是write的时候可以把 bit 由1变为0,可以简单的理解成与上你写的数据。
6 n) a6 X3 U# [. rerase的时候,把bit 由0变成1。
使用道具 举报 回复
发表于 2020-2-17 16:47:59 | 显示全部楼层
_Tony_ 发表于 2020-2-17 16:07. m8 v3 @. j8 h2 P
spi flash的物理特性就是write的时候可以把 bit 由1变为0,可以简单的理解成与上你写的数据。  j$ y7 v6 |8 Y4 }% H
erase的时候 ...

; d$ h; n6 [& N' J明白了,那就是每次写入前都需要擦除。sfud只是提供了底层的函数,要实现产品上的读取,写入,还需要fal和文件系统来完成吧。
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

Powered by RT-Thread

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