搜索
bottom↓
回复: 8

文件系统问题求教 25系列SPI-FLASH device_test()已通过

[复制链接]

出0入17汤圆

发表于 2011-1-20 11:27:18 | 显示全部楼层 |阅读模式
硬件:STM32 25系列SPI-FLASH
软件:RTT 0.3.1, 工程模板是radio中的例程,SPI-FLASH驱动改自ST提供的和正点原子
测试程序:来自0.3.1手册和aozima的device_test()



(原文件名:命令列表.jpg)


(原文件名:路径和读写测试(1).jpg)


(原文件名:路径和读写测试(2).jpg)

续《原文件名:路径和读写测试(2)》.
finsh>>read_1st_sec()
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0         32, 0x00000020
finsh>>

把25系列SPI-FLASH驱动也上传了,调通后我会将驱动整理为同一风格的代码及细化,重新上传。
驱动是先擦后写,但会保存当簇没改变的信息,重新写入。用自己的测试程序,已经测试过读写函数,没发现问题。

点击此处下载 ourdev_612403FBA3BR.txt(文件大小:28K) (原文件名:w25x.txt)

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入17汤圆

 楼主| 发表于 2011-1-20 11:34:38 | 显示全部楼层
自己改动过的地方:
1.改动了ff.c中 #define MIN_SECTOR        2000UL改为
#define MIN_SECTOR        512UL

2.ffconf.h中  #define        _MAX_SS                512改为
#define        _MAX_SS                4096

3.void fst_readdir(void* parameter)
{
    int result;
    DIR *dirp;
    struct dirent *d;
    /* 打开 /web 目录 */
    dirp = opendir("/web");  //0x2f 0x77 0x65 0x62
    if(dirp == RT_NULL)
    {
        rt_kprintf("[error!]\n");
    }
    else
    {
        /* 读取目录 */
        //rt_kprintf("open dir sucess\n");
        //原来是while结构
        do
        {
            d = readdir(dirp);
            rt_kprintf("found %s\n",d->d_name);
        }while (d != RT_NULL);
        closedir(dirp);
        //rt_kprintf("close dir \n");
    }
}
4.device_test中读写的大小改为一个sector

问题:
1.为什么要mkfs之后才可以ls("/")

2.路径和读写测试(1)(2)中看出device_test可以通过,但路径是读不出来。
3.读第一个扇区的前32个数据,为什么全是0的?重启之后会重新mount过的

出0入0汤圆

发表于 2011-1-20 11:55:47 | 显示全部楼层
mkfs就是做一个文件系统的格式化,就类似一个U盘,如果里面是一个未知格式的,那么windows必须要把它先格式化了后才能够正确读出其中的文件、目录。

其他的,是否你的驱动依然还有些问题?可以考虑把它们dump出来看看。基本的测试用finsh shell中提供的命令就可以了。

出0入0汤圆

发表于 2011-1-20 12:59:36 | 显示全部楼层
SPI-FLASH 中的文件,比如web页面如何上传到SPI-FLASH中呢?

出0入17汤圆

 楼主| 发表于 2011-1-20 14:11:58 | 显示全部楼层
回ffxz,那意味着我mount时,系统的格式已经不对,我再查查驱动。

web页面可以转为C数组存储

出0入17汤圆

 楼主| 发表于 2011-1-20 15:18:56 | 显示全部楼层
回复【2楼】ffxz
mkfs就是做一个文件系统的格式化,就类似一个u盘,如果里面是一个未知格式的,那么windows必须要把它先格式化了后才能够正确读出其中的文件、目录。
其他的,是否你的驱动依然还有些问题?可以考虑把它们dump出来看看。基本的测试用finsh shell中提供的命令就可以了。
-----------------------------------------------------------------------

再问问:
我楼上的理解错误了。mount了并不意味着已经格式化了。我打印了第一个扇区的信息,

finsh>>erase_chip()
        4, 0x00000004
finsh>>read_1st_sec()

MBR bootstrap loader code:
ff ff ff ff ff ff ff ff
MBR boot record:
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
MBR Disk PartitionTable:
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  512, 0x00000200
finsh>>reboot()
\ | /
- RT -     Thread Operating System
/ | \ 0.3.1 build Jan 20 2011
2006 - 2010 Copyright by rt-thread team
SPI File System initialized!
finsh>>read_1st_sec()

MBR bootstrap loader code:
ff ff ff ff ff ff ff ff
MBR boot record:
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
MBR Disk PartitionTable:
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  512, 0x00000200
finsh>>mkfs("spi3")
        0, 0x00000000
finsh>>read_1st_sec()

MBR bootstrap loader code:
0 0 0 0 0 0 0 0
MBR boot record:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MBR Disk PartitionTable:
80 1 1 0 4 fe 3f 0 3f 0 0 0 c1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 55 aa     512, 0x00000200
finsh>>


引导代码全为0,好像不对吧?
MBR bootstrap loader code:
0 0 0 0 0 0 0 0

出0入0汤圆

发表于 2011-1-20 21:14:11 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2011-4-25 13:16:34 | 显示全部楼层
不错,mark

出0入0汤圆

发表于 2012-2-16 17:55:10 | 显示全部楼层
mark  能否提供测试程序
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-11 00:03

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

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