5446|1

3

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

stm32f2xx外接128M的nand flash挂载文件系统问题(源码) [复制链接]

nand flash的读写测试和挂载文件系统的SD卡已经调试成功,因为SD卡读写速度太慢,导致图片解码程序的显示速度太慢,明显下一张图片慢慢刷新。现在想要将nand flash作为存储器来存储图片,然后解码显示。可是问题出现了,将文件系统FATFS移植到nandflash后,调用格式化函数f_mkfs(0,1,4096) 时,一直返回“格式化失败”。
  1. void test_fatfs(void)
  2. {
  3.     FATFS fs;
  4.         FIL fl;
  5.         FATFS *pfs;
  6.         DWORD clust;
  7.         unsigned int r,w,i;
  8.         FRESULT  res;

  9. //        NF_CHKDSK(0,1024);
  10.         display_page(0,0);
  11.        
  12. // for mount挂载       
  13.         res=f_mount(0,&fs);
  14.         printf("f_mount=%x \n\r",res);
  15.        
  16. // for format格式化
  17.         res=f_mkfs(0,1,4096);        //新NANDFLASH必须格式化 !!!
  18.         printf("f_mkfs=%x \n\r",res);

  19. // for
  20.         pfs=&fs;
  21.         res = f_getfree("/", &clust, &pfs);
  22. //        res = f_getfree("", &clust, &pfs);

  23.         printf("f_getfree=%x \n\r",res);
  24.         printf("\n\r%lu MB total drive space."
  25.                    "\n\r%lu MB available.\n\r",
  26.                         (DWORD)(pfs->max_clust - 2) * pfs->csize /2/1024,
  27.                         clust * pfs->csize /2/1024);
  28.        
  29. // for read
  30.     res=f_open(&fl,"/test2.dat",FA_OPEN_EXISTING | FA_READ);
  31. //        res=f_open(&fl,"test.txt",FA_OPEN_EXISTING | FA_READ);
  32.     printf("f_open=%x \n\r",res);
  33.         for(i=0;i<2;i++)
  34.         {
  35.                 for(r = 0; r < NAND_PAGE_SIZE; r++)
  36.                 {
  37.                         RxBuffer[r]= 0xff;
  38.                 }
  39.                
  40.                 res=f_read(&fl,RxBuffer,NAND_PAGE_SIZE,&r);
  41.                 printf("f_read=%x \n\r",res);
  42.                 if(res || r == 0)break;
  43.                 for(r = 0; r < NAND_PAGE_SIZE; r++)
  44.             {
  45.                 printf("D[%08x]=%02x ",(i*NAND_PAGE_SIZE+r),RxBuffer[r]);
  46.                 if((r%8)==7)
  47.                 {printf("\n\r");}
  48.             }
  49.             
  50.         }
  51.         f_close(&fl);
  52. // for write
  53.         res=f_open(&fl,"/test2.dat",FA_CREATE_ALWAYS | FA_WRITE);
  54. //        res=f_open(&fl,"test.txt",FA_CREATE_ALWAYS | FA_WRITE);
  55.         printf("f_open=%x \n\r",res);
  56.         for(i=0;i<2;i++)
  57.         {
  58.                 for(w = 0; w < NAND_PAGE_SIZE; w++)
  59.                 {
  60.                         TxBuffer[w]=((w<<0)&0xff);
  61.                 }
  62.         res=f_write(&fl,TxBuffer,NAND_PAGE_SIZE,&w);
  63.         printf("f_write=%x \n\r",res);
  64.                 if(res || w
  65.                
  66.         }
  67.         f_close(&fl);
  68.        
  69. // for umount
  70.         f_mount(0,NULL);
  71. }               
复制代码
此帖出自stm32/stm8论坛

最新回复

楼主问题搞定了吗?可以分享下代码 吗?我现在也是用STM32外扩NAND FLASH进行数据存储,想移植FATS文件系统,方便通过USB电脑识别,直接读取数据文件。谢谢了  详情 回复 发表于 2016-5-25 17:22
点赞 关注
 

回复
举报

483

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
楼主问题搞定了吗?可以分享下代码 吗?我现在也是用STM32外扩NAND FLASH进行数据存储,想移植FATS文件系统,方便通过USB电脑识别,直接读取数据文件。谢谢了
此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表