lindabell 发表于 2012-4-6 10:35:21

关于DFS文件写入出现hard fault

本帖最后由 lindabell 于 2012-4-6 10:35 编辑

我用串口发数据并缓存,然后打开文件保存到一个文件里。第一次保存时都没有问题,但是第二次时就会有问题
我用串口发送图片包到MCU,然后保存到文件中;等第二包到来时继续保存到刚才的文件中。一幅图片保存完了,
我又把这幅图片的数据重新保存即:刚才不是保存一幅图片了吗,我又在这个文件里再保存一次这幅图片,这是出现
了hard fault。
1.假如我发送一幅图片后,就用finsh把该图片文件删除,然后再发图片数据,是没有问题的
2.假如我发送一幅图片后,我用finsh》create("/Camera1.txt","test",4)也是会出现hard fault的case 1<<7:        //接收到一帧数据                       
                                  fd=open("/Camera1.txt",O_CREAT|O_APPEND|O_WRONLY,0);
                                  if(fd<0)
                                  {
                                          rt_kprintf("open %s failed\n","/Camera1.txt");
                                          break;
                                  }
                                  length=write(fd,pCameraDataStruct->buf+8,pCameraDataStruct->size-11);//第二次写图片数据时在这里出现hard fault
                                  if(length!=(pCameraDataStruct->size-11))
                                  {
                                          rt_kprintf("write data failed\r\n");
                                          close(fd);
                                  }
                                  close(fd);                                       
                                  pCameraDataStruct->size=0;
                                  CameraDev->control(CameraDev,dReadNextPhotoDataCMD,RT_NULL);//请求下一帧数据
                               break;
                       case 1<<8://接收到最后一帧数据
                               
                               fd=open("/Camera1.txt",O_CREAT|O_APPEND|O_WRONLY,0);
                                  if(fd<0)
                                  {
                                          rt_kprintf("open %s failed\n","/Camera1.txt");
                                          break;
                                  }
                                  length=write(fd,pCameraDataStruct->buf+8,pCameraDataStruct->size-11);
                                  if(length!=(pCameraDataStruct->size-11))
                                  {
                                          rt_kprintf("write data failed\r\n");
                                          close(fd);
                                  }
                                  close(fd);                       
                                  pCameraDataStruct->size=0;
                               break;
页: [1]
查看完整版本: 关于DFS文件写入出现hard fault