主题 : Tiny210在linux下写sd卡的问题。 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 89216
精华: 0
发帖: 16
金钱: 85 两
威望: 17 点
综合积分: 32 分
注册时间: 2013-03-24
最后登录: 2014-08-22
楼主  发表于: 2014-06-23 21:47

 Tiny210在linux下写sd卡的问题。

在嵌入式linux下向sd卡中保存文件,有时系统会出现
mmcblk0: error -110 sending stop command, original cmd response 0x900, card status 0x400e00,
这时写操作无法捕获异常,也无法退出程序,系统进入锁死状态。
请问有没有朋友也遇到此问题,如何解决。

自己做测试的代码如下

int nlen = 120 * 1024;
char *pTemp = (char*) malloc(nlen);
char file_name[256];
for(int i=0; i< nCount; i++){
  sprintf(file_name,"/sdcard/12_06/%.06d.jpg", i);
  FILE *tmpf;
  if ((tmpf = fopen(file_name, "wb")) == NULL) {
     ErrorLog("无法创建%s", file_name);
     return -1;
  }
 //TraceLog("创建%s成功!", file_name);

 if (fwrite(pTemp, 1, nlen, tmpf) != nlen){
   TraceLog("写入错误!");
 }
 fclose(tmpf);
 printf("%s成功!\n", file_name);
}
TraceLog("写入完成!");    
free(pTemp);
级别: 新手上路
UID: 89216
精华: 0
发帖: 16
金钱: 85 两
威望: 17 点
综合积分: 32 分
注册时间: 2013-03-24
最后登录: 2014-08-22
1楼  发表于: 2014-07-13 17:32
看了驱动程序源码,出现故障的地方驱动会死循环等待,最后也没找到解决的办法,就当成是sd卡质量问题或没插好吧。重新插sd卡,并且格式化后,用测试程序测试不再出现此问题。
同时优化了自己的程序,尽量减少sd卡的写入,也没什么其它好办法。
级别: 新手上路
UID: 105382
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2014-06-23
最后登录: 2015-02-05
2楼  发表于: 2014-07-16 19:15
感觉论坛没人气啊,遇到问题求解决没人回复。。。。。。。。。。。。