rt文件系统挂的w25q 读写一段时间之后文件就打不开了

发表在 文件系统2018-12-5 21:15 [复制链接] 4 124

1金钱
本帖最后由 yufanyufan77 于 2018-12-5 21:32 编辑
* Y' N7 N& j, D; m2 P1 U7 d9 v, M( s3 t$ o- w# F9 P
rt文件系统挂的w25q   读写一段时间之后文件就打不开了   重启板子又可以读出里边的文件了  有多个线程读写同一个文件  但是我加了信号量
  1.    rt_uint32_t fd;
    2 P+ B  t5 N- H% W2 E! H
  2. 9 @( {. v" o8 |+ O1 p( w( g
  3.     char buf[1024];8 J* H  F/ t) U8 B! N* q
  4.     rt_uint16_t i;
    ) a, m1 T8 m) k# E
  5.     rt_err_t res = RT_EOK;
    ; B. e0 @; I- J0 J) D7 k9 u" v3 V3 R
  6. " J* d0 {8 T: X. T" V/ I
  7.     struct dfs_fd files;! [4 j5 y6 s# X: W3 R9 C
  8.     rt_sem_take(&file_sem,RT_WAITING_FOREVER);
    0 c: m. M7 \+ ^0 ~
  9.     codeNum = codeNum%TranRecodeMaxCount;
    2 h" o$ ~& l- ^8 L; S$ n+ ~4 K
  10.     res = dfs_file_open(&files,codeName,O_RDWR|O_CREAT);* S" V1 M# A6 v! P4 Z* Q
  11. & \* \( t& l% n" I: r
  12.     if(res!=RT_EOK)
    . a) G. J% b2 l8 Y$ }1 R* D
  13.     {3 p5 Q; W( k$ i* ^: ]; f
  14.         ttr_dbg("open-w codefile fail\n");0 c0 G- c9 \1 S% c7 Y
  15.         goto end;6 c2 F/ O5 |9 A9 x9 f- }
  16.     }1 A, A& ~! }. L5 h8 Y4 B

  17. ! ]* F9 Y: m( H
  18.     dfs_file_lseek(&files,56*codeNum);
    & T' `) d) v. W& p# H

  19. 6 x) a0 }( ~% q2 T3 y5 f
  20.     sprintf(buf,"%08x,",codeNum);
    / Y. Z/ |- R8 D
  21.     dfs_file_write(&files,buf,strlen(buf));% p/ h% r+ R- |

  22. # U1 K, r  [: P" s6 g6 I$ W; R( k
  23.     for(i=0; i<sizeof(code.startTime); i++)
    + f/ R' O! X5 o( W
  24.     {
    5 _# c, _: N7 K0 j
  25.         sprintf(buf,"%02x",code.startTime[i]);
    # e7 o. L# V' l1 O. @* }- ^
  26.         dfs_file_write(&files,buf,strlen(buf));" ]: ]! f+ w( O; d$ l7 s
  27.     }. ]* A! h( P; b- u$ f! H7 j
  28.     dfs_file_write(&files,",",1);9 j- u# {) ?$ @( Q" r) ]( \0 j0 |+ N
  29.     for(i=0; i<sizeof(code.endTime); i++)
    ; J+ }1 A2 X2 T' U- E
  30.     {
    3 R  m/ e, a2 w: V- V
  31.         sprintf(buf,"%02x",code.endTime[i]);
    0 a0 m. M% }8 k& i6 b% q
  32.         dfs_file_write(&files,buf,strlen(buf));: c: J, d9 x- V* D
  33.     }
    * L" R7 U3 a* L+ @. _7 I5 T: e  J
  34.     dfs_file_write(&files,",",1);, C  x" N% C& J7 S3 F5 f
  35. * N2 A& x0 r, f! _( i
  36.     sprintf(buf,"%02x",code.runMode);
    % S7 `% c( v! g# _( b$ Q* u2 R
  37.     dfs_file_write(&files,buf,strlen(buf));
    $ o& @) _4 O6 W$ k+ f+ k$ T; K
  38.     dfs_file_write(&files,",",1);
    2 M8 X  K$ {6 k" K

  39. & E0 [8 N! i+ X- [7 Q: F" j
  40.     sprintf(buf,"%02x",code.runstate);
    ! S+ ~& Z& I7 L- f; Y5 \
  41.     dfs_file_write(&files,buf,strlen(buf));0 q6 y& [' d+ I, ?( l
  42.     dfs_file_write(&files,",",1);
    , r" y2 `. j9 \1 e/ H( |
  43. * t; T. O( g! K, C# q, G6 ~
  44.     sprintf(buf,"%02x",code.runWaring);' P% A. j! ^1 k; B
  45.     dfs_file_write(&files,buf,strlen(buf));
    # z5 `' s6 p- G/ K5 ?
  46.     dfs_file_write(&files,",",1);
    + K  f+ [# W$ h
  47. . ^+ Y0 d! \" g- N- s/ n0 `
  48.     for(i=0; i<sizeof(code.Reserved); i++)7 k( h. Q6 C6 F7 v% Y
  49.     {1 ^4 `& g3 F0 S1 w
  50.         sprintf(buf,"%02x",code.Reserved[i]);
    1 K$ C) ^! O# r, P7 j5 l7 `
  51.         dfs_file_write(&files,buf,strlen(buf));
    $ N, |7 v$ O2 Z, K2 s) g
  52.     }, K8 {) V: X, K" y
  53.     dfs_file_write(&files,",\n",2);$ I% Z* k2 o0 V5 r/ ^

  54. 8 I' x  i& K' t, i& |( _# U7 m. p
  55. end:4 L: H- W1 C) P& D
  56.     dfs_file_close(&files);! }5 [# }- G+ f8 d8 K8 r$ H
  57.     rt_sem_release(&file_sem);
    0 T  o9 T+ p, J- m) _4 q# U! P
  58.     return 1;
复制代码
, L2 S- z1 b* l& K+ l: {( g
0 I! U% J; Y6 Q3 D

使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2018-12-5 21:54:07 | 显示全部楼层
用 SFUD 测试下驱动稳定不
使用道具 举报 回复
发表于 2018-12-5 22:41:23 | 显示全部楼层
本帖最后由 yufanyufan77 于 2018-12-5 22:44 编辑 & Y; ^6 D& k: g, x
Summer_gift 发表于 2018-12-5 21:54) x2 u. Q) U. _) A( n
用 SFUD 测试下驱动稳定不
2 |8 E: I/ z$ s
我直接使用的sfud,ls可以看到文件列表  但是cat却打不开文件  cd也进不了文件夹
使用道具 举报 回复
发表于 2018-12-6 16:35:37 | 显示全部楼层
来结贴,问题是内存泄漏导致的,谢谢论坛大神提点
使用道具 举报 回复
发表于 2018-12-6 19:34:37 | 显示全部楼层
结贴 内存泄漏导致的 谢谢论坛大神提点
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|RT-Thread开发者社区  

© 2013-2017 上海睿赛德电子科技有限公司 沪ICP备13014002号-1

Powered by RT-Thread

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