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

发表在 Filesystem2018-12-5 21:15 [复制链接] 4 324

1金钱
本帖最后由 yufanyufan77 于 2018-12-5 21:32 编辑 3 F2 [* R( {, t/ [. {0 S
4 h' Z; k8 g6 R4 G+ s
rt文件系统挂的w25q   读写一段时间之后文件就打不开了   重启板子又可以读出里边的文件了  有多个线程读写同一个文件  但是我加了信号量
  1.    rt_uint32_t fd;
    ) R. Y6 X+ \0 ~# [9 M- ]" s3 s

  2. ' \8 t8 x2 e, f/ x& B, @
  3.     char buf[1024];& f7 q; ]% \4 o( p0 h& F
  4.     rt_uint16_t i;& q2 @0 n6 Q/ y) f3 `, d
  5.     rt_err_t res = RT_EOK;# `3 E6 Q4 K- N; T- L

  6. 1 R4 k- _/ W" I
  7.     struct dfs_fd files;
    ! q! ?6 |8 ]0 x1 c
  8.     rt_sem_take(&file_sem,RT_WAITING_FOREVER);+ p7 l0 g: t0 O" u, O  J
  9.     codeNum = codeNum%TranRecodeMaxCount;
    7 p  d  w5 P0 B
  10.     res = dfs_file_open(&files,codeName,O_RDWR|O_CREAT);
    $ N! V6 R! v  }: w3 o/ ~# Q
  11. 6 v8 Q1 {) ^% f" R2 j1 r/ t% H
  12.     if(res!=RT_EOK)  ~( _- o8 k! |
  13.     {
    $ y/ Q3 S4 `  x/ a) Z
  14.         ttr_dbg("open-w codefile fail\n");' J5 S+ g9 ?& S  e
  15.         goto end;$ a- c, l- {% |
  16.     }
    ! j/ p# w+ S) L. I2 Y
  17. 5 u4 C1 k: ^* r9 U  e
  18.     dfs_file_lseek(&files,56*codeNum);2 @: N. i/ O/ v' q

  19. 6 _8 Y. @% g$ S! L: p1 a2 I
  20.     sprintf(buf,"%08x,",codeNum);2 V: V3 r+ L0 m% c2 ]+ c
  21.     dfs_file_write(&files,buf,strlen(buf));
    - D# ?4 C9 _; F" _7 |- J

  22. 3 f& t9 K; \9 d
  23.     for(i=0; i<sizeof(code.startTime); i++)
      R- i% _; X' a& G# ~
  24.     {
    - o! O- \  C5 o8 Y+ \
  25.         sprintf(buf,"%02x",code.startTime[i]);/ M' k  o4 C8 A7 p/ I
  26.         dfs_file_write(&files,buf,strlen(buf));
    $ R1 n8 ]1 Z3 ~" k8 R4 z! Y6 ?4 C
  27.     }
    $ |' `5 `9 d# ^, V" h( {: a
  28.     dfs_file_write(&files,",",1);
    . n; G9 K# V5 R% B: [4 a( x
  29.     for(i=0; i<sizeof(code.endTime); i++)$ z6 m% G' G% P1 e- a
  30.     {5 {" s4 ^6 y3 i. Y' |
  31.         sprintf(buf,"%02x",code.endTime[i]);
    6 J3 |0 f+ j0 k$ M, v2 I- q4 b, b) W
  32.         dfs_file_write(&files,buf,strlen(buf));7 [: A. w5 s" Z/ v  a
  33.     }3 T" n, J* P8 b( ^, q
  34.     dfs_file_write(&files,",",1);
    # j7 V' O3 R1 A, {8 v) J7 [

  35. ; T* I' F+ d" [: w) m
  36.     sprintf(buf,"%02x",code.runMode);: J7 z5 k) ]+ U' }4 `; E
  37.     dfs_file_write(&files,buf,strlen(buf));: \1 W# S5 k1 x1 z# }" l: \
  38.     dfs_file_write(&files,",",1);
    ' `1 K! ~8 B5 o& M2 e, Q7 n

  39. 2 H- E2 f5 k  {; e
  40.     sprintf(buf,"%02x",code.runstate);
    2 u" D( _( i/ q
  41.     dfs_file_write(&files,buf,strlen(buf));
    4 m* [# x2 d9 T
  42.     dfs_file_write(&files,",",1);+ k7 A0 C8 Q4 J: q  d9 x) f

  43. 7 U- N( k  d% m; k
  44.     sprintf(buf,"%02x",code.runWaring);
    8 y$ x7 ^- a/ A
  45.     dfs_file_write(&files,buf,strlen(buf));
    3 B7 e% f7 u/ ]- g$ Q1 s8 [
  46.     dfs_file_write(&files,",",1);3 P, t" `$ p( |
  47. 9 u3 V7 b% k% x# R! Q$ p) I5 \
  48.     for(i=0; i<sizeof(code.Reserved); i++)% C% x- l/ t- e7 T& \7 |% d0 M
  49.     {) K6 ?: p8 k" g) k
  50.         sprintf(buf,"%02x",code.Reserved[i]);
    5 s0 C. a& N( P% h, a/ z: E
  51.         dfs_file_write(&files,buf,strlen(buf));
    * \. s) M& D6 t4 f7 Y, Q
  52.     }
    % R% P/ [: B7 Z# ~
  53.     dfs_file_write(&files,",\n",2);3 O  N: ~9 m, s0 \( O& P& R

  54. : q& r8 ~$ t% ~, ~, S  j. \
  55. end:
    - {1 T% s5 {( v& }6 x" s
  56.     dfs_file_close(&files);" s6 e" ]. q5 M0 N$ u$ m
  57.     rt_sem_release(&file_sem);
    ( B( i  R/ `1 w
  58.     return 1;
复制代码
( ^  J4 Q/ ?; m3 B  u5 @6 V

  l8 E. p  g; ^0 ~

使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2018-12-5 21:54:07 | 显示全部楼层
用 SFUD 测试下驱动稳定不
使用道具 举报 回复
发表于 2018-12-5 22:41:23 | 显示全部楼层
本帖最后由 yufanyufan77 于 2018-12-5 22:44 编辑 : v8 M$ o# m  @
Summer_gift 发表于 2018-12-5 21:54
9 {+ x1 T7 F+ V! X用 SFUD 测试下驱动稳定不
( U8 u- ]9 X. Z+ F7 c# y
我直接使用的sfud,ls可以看到文件列表  但是cat却打不开文件  cd也进不了文件夹
使用道具 举报 回复
发表于 2018-12-6 16:35:37 | 显示全部楼层
来结贴,问题是内存泄漏导致的,谢谢论坛大神提点
使用道具 举报 回复
发表于 2018-12-6 19:34:37 | 显示全部楼层
结贴 内存泄漏导致的 谢谢论坛大神提点
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by RT-Thread

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