野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10485|回复: 22

野火MINI开发板的模拟U盘(用SD卡模拟)能不能在SPI flash中移植?

[复制链接]
发表于 2015-4-12 18:01:49 | 显示全部楼层 |阅读模式
野火MINI开发板的模拟U盘(用SD卡模拟)能不能在SPI flash中移植?就是想在开发板上的W25*64的SPI FLASH上操作文件系统,请赐教
回复

使用道具 举报

发表于 2015-4-12 18:37:37 | 显示全部楼层
完全可以的,我们最近几天会推出这方面的例程
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-12 19:10:15 | 显示全部楼层
亽亼 发表于 2015-4-12 18:37
完全可以的,我们最近几天会推出这方面的例程

太好了,我正在MINI开发板上搞文件系统,希望尽快发布!到时候能不能发一份给我,79693621@qq.com
先谢谢了!
支持野火,您们是最棒的!!
回复 支持 反对

使用道具 举报

发表于 2015-4-12 20:16:33 | 显示全部楼层
20、FATFS0.10_flash(flash).rar (807.67 KB, 下载次数: 64) 34、USB Mass Storage_flash(flash).rar (423.46 KB, 下载次数: 72)


回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-12 20:21:40 | 显示全部楼层

谢谢!非常感谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-18 20:59:49 | 显示全部楼层
W25*64的SPI FLASH  采用提供的程序,在电脑上为什么显示可移动磁盘容量为5.97兆,按道理W25*64应该为8兆的吧?还是作为大容量存储设备格式化后有两兆的容量被文件系统占用了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-18 21:04:59 | 显示全部楼层


W25*64的SPI FLASH  采用提供的程序,在电脑上为什么显示可移动磁盘容量为5.97兆,按道理W25*64应该为8兆的吧?还是作为大容量存储设备格式化后有两兆的容量被文件系统占用了吗?
回复 支持 反对

使用道具 举报

发表于 2015-4-19 12:45:47 | 显示全部楼层
是只有6M空间的,我预留2M空间放字库,触摸屏校准数据以及Flash测试实验用的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-19 15:35:51 | 显示全部楼层
亽亼 发表于 2015-4-19 12:45
是只有6M空间的,我预留2M空间放字库,触摸屏校准数据以及Flash测试实验用的

请问预留的这部分在哪个子函数里? 我想修改一下,谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-19 16:03:13 | 显示全部楼层
ldpy2008 发表于 2015-4-19 15:35
请问预留的这部分在哪个子函数里? 我想修改一下,谢谢

找到了,谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-21 21:18:15 | 显示全部楼层

您好! 我将这两个文件作成一个工程,为什么只实现了USB MSD的功能,而在SPI FLASH中写文件的程序却没有执行,是怎么回事呢?请赐教
回复 支持 反对

使用道具 举报

发表于 2015-4-22 08:55:52 | 显示全部楼层
两个文件作成一个工程你是想实现一边写,一边在电脑U盘实时显示的吗??
这样也没搞过,理论上,应该是可行的,但程序也实际搞过不好说
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-22 09:40:12 | 显示全部楼层
亽亼 发表于 2015-4-22 08:55
两个文件作成一个工程你是想实现一边写,一边在电脑U盘实时显示的吗??
这样也没搞过,理论上,应该是可 ...

我调试的时候是想看一下效果,就把写SPI FLASH中写文件的程序加载进USB程序,整个程序封装完下载了一下,没看到文件内容,只是识别出了大容量U盘存储设备,重新上电(想着可能不会实时显示就重新上电)也是只能识别大容量U盘设备,文件没有创建成功。参照您的源程序是在SD卡的基础上改的,去掉了SD卡中断部分,会不会和中断有关?
回复 支持 反对

使用道具 举报

发表于 2015-4-22 15:00:00 | 显示全部楼层
SD卡的中断是给SD卡底层驱动用到的,跟Flash是没关系的
只不过USB驱动有中断,所以USB部分的中断服务程序要保留
还有你想实现的效果是不是这样的:上电后马上给SPI Flash写个文件,写好之后,让程序运行模拟U盘程序,在电脑上看刚刚写的文件???
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-22 15:37:08 | 显示全部楼层
亽亼 发表于 2015-4-22 15:00
SD卡的中断是给SD卡底层驱动用到的,跟Flash是没关系的
只不过USB驱动有中断,所以USB部分的中断服务程序 ...

是的,是这样想的。
把这两个文件合为一个工程,看下实际运行效果,
回复 支持 反对

使用道具 举报

发表于 2015-4-22 19:24:10 | 显示全部楼层
感觉你这样的要求是可以做的
把Flash写文件程序放在前面应该是可以的
你要看下spi Flash底层驱动函数是否相同的,因为被改了偏移地址,所以要特别注意
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-22 20:30:52 | 显示全部楼层
亽亼 发表于 2015-4-22 19:24
感觉你这样的要求是可以做的
把Flash写文件程序放在前面应该是可以的
你要看下spi Flash底层驱动函数是否 ...

是的 把写FLASH的程序放在USB程序的前面, 实现了,非常感谢!!!
我把SPI FLASH 的地址配置成8M的空间,从起始地址开始记录,暂时写着没发现问题,再次感谢!!!
回复 支持 反对

使用道具 举报

发表于 2015-12-21 14:28:45 | 显示全部楼层
非常感谢@亽亼
回复 支持 反对

使用道具 举报

发表于 2015-12-22 17:02:27 | 显示全部楼层

我在ISO V2上测试通过了FATFS0.10flash。还想在SST25VF016B上测试一下,求大神指教一下我需要改些什么。
现在我已经把spi.c中对应的驱动都已经改过来了。
#define        _MIN_SS                512
#define        _MAX_SS                512
这两个宏设置对吗?@亽亼
回复 支持 反对

使用道具 举报

发表于 2015-12-22 17:14:19 | 显示全部楼层
不对吧,我看SST25VF016B也是4KB擦除的,要用4096
#define        _MAX_SS                4096
回复 支持 反对

使用道具 举报

发表于 2015-12-23 10:51:07 | 显示全部楼层
亽亼 发表于 2015-12-22 17:14
不对吧,我看SST25VF016B也是4KB擦除的,要用4096
#define        _MAX_SS                4096

4096也试过,能帮我看一下吗

FATFS0.10_flash(flash).rar

800.62 KB, 下载次数: 5

在SST25VF016B上操作文件系统

回复 支持 反对

使用道具 举报

发表于 2015-12-23 12:31:01 | 显示全部楼层
没有SST25VF016B芯片,很难看出有什么问题
可以参考我们的例程http://www.firebbs.cn/thread-1802-1-1.html
  1. DRESULT TM_FATFS_FLASH_SPI_disk_ioctl(BYTE cmd, char *buff)
  2. {
  3.           FLASH_DEBUG_FUNC();
  4.         switch (cmd)
  5.         {
  6.                 case GET_SECTOR_SIZE :     // Get R/W sector size (WORD)
  7.                         *(WORD * )buff = 4096;                //flash×îСдµ¥ÔªÎªÒ³£¬256×Ö½Ú£¬´Ë´¦È¡2ҳΪһ¸ö¶Áдµ¥Î»
  8.                 break;
  9.                 case GET_BLOCK_SIZE :      // Get erase block size in unit of sector (DWORD)
  10.                         *(DWORD * )buff = 1;                //flashÒÔ4kΪ×îС²Á³ýµ¥Î»
  11.                 break;
  12.                 case GET_SECTOR_COUNT:
  13.                         [color=Red]*(DWORD * )buff = 512;                [/color]//sectorÊýÁ¿
  14.                 break;
  15.                 case CTRL_SYNC :
  16.                 break;
  17.                 default:break;
  18.         }

  19.         return RES_OK;
  20. }
复制代码

不是很明白你这里为什么是512
回复 支持 反对

使用道具 举报

发表于 2015-12-23 15:16:04 | 显示全部楼层
亽亼 发表于 2015-12-23 12:31
没有SST25VF016B芯片,很难看出有什么问题
可以参考我们的例程http://www.firebbs.cn/thread-1802-1-1. ...

调好了,谢谢@亽亼
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-11 07:38 , Processed in 0.062526 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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