搜索
bottom↓
回复: 0

关于DFS文件写入出现hard fault

[复制链接]

出0入8汤圆

发表于 2012-4-6 10:35:21 | 显示全部楼层 |阅读模式
本帖最后由 lindabell 于 2012-4-6 10:35 编辑

我用串口发数据并缓存,然后打开文件保存到一个文件里。第一次保存时都没有问题,但是第二次时就会有问题
我用串口发送图片包到MCU,然后保存到文件中;等第二包到来时继续保存到刚才的文件中。一幅图片保存完了,
我又把这幅图片的数据重新保存即:刚才不是保存一幅图片了吗,我又在这个文件里再保存一次这幅图片,这是出现
了hard fault。
1.假如我发送一幅图片后,就用finsh把该图片文件删除,然后再发图片数据,是没有问题的
2.假如我发送一幅图片后,我用finsh》create("/Camera1.txt","test",4)也是会出现hard fault的
  1. case 1<<7:        //接收到一帧数据                       
  2.                                   fd=open("/Camera1.txt",O_CREAT|O_APPEND|O_WRONLY,0);
  3.                                   if(fd<0)
  4.                                   {
  5.                                           rt_kprintf("open %s failed\n","/Camera1.txt");
  6.                                           break;
  7.                                   }
  8.                                   length=write(fd,pCameraDataStruct->buf+8,pCameraDataStruct->size-11);//第二次写图片数据时在这里出现hard fault
  9.                                   if(length!=(pCameraDataStruct->size-11))
  10.                                   {
  11.                                           rt_kprintf("write data failed\r\n");
  12.                                           close(fd);
  13.                                   }
  14.                                   close(fd);                                       
  15.                                   pCameraDataStruct->size=0;
  16.                                   CameraDev->control(CameraDev,dReadNextPhotoDataCMD,RT_NULL);//请求下一帧数据
  17.                                  break;
  18.                          case 1<<8://接收到最后一帧数据
  19.                                  
  20.                                  fd=open("/Camera1.txt",O_CREAT|O_APPEND|O_WRONLY,0);
  21.                                   if(fd<0)
  22.                                   {
  23.                                           rt_kprintf("open %s failed\n","/Camera1.txt");
  24.                                           break;
  25.                                   }
  26.                                   length=write(fd,pCameraDataStruct->buf+8,pCameraDataStruct->size-11);
  27.                                   if(length!=(pCameraDataStruct->size-11))
  28.                                   {
  29.                                           rt_kprintf("write data failed\r\n");
  30.                                           close(fd);
  31.                                   }
  32.                                   close(fd);                       
  33.                                   pCameraDataStruct->size=0;
  34.                                  break;
复制代码

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 01:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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