搜索
bottom↓
回复: 6

求助:RT_THREAD使用DFS_ELMFAT,dfs_mount() feiled。

[复制链接]

出0入0汤圆

发表于 2014-10-22 10:04:45 | 显示全部楼层 |阅读模式
rt_thread1.2.0版本 ,bsp里面的lpc1768的例程。
SSP0作SPI驱动SD卡。
引脚改为,/* P0.16 SSEL (used as GPIO) */,/* P0.15 SCK0 */,/* P0.17 MISO0, P0.18 MOSI0 */。
SD卡初始化成功,然后File System init failed!
调试发现,问题出在这里:
/* mount sd card fat partition 1 as root directory */
    if (dfs_mount("sd0", "/", "elm", 0, 0) == 0)
            rt_kprintf("File System initialized!\n");
    else
            rt_kprintf("File System init failed!\n");
跟踪到dfs_mount("sd0", "/", "elm", 0, 0) 里面,发现是这里返回了:
    /* call mount of this filesystem */
    if ((*ops)->mount(fs, rwflag, data) < 0)
    {
        /* close device */
        if (dev_id != RT_NULL)
            rt_device_close(fs->dev_id);

        /* mount failed */
        dfs_lock();
        /* clear filesystem table entry */
        rt_memset(fs, 0, sizeof(struct dfs_filesystem));
                                rt_kprintf("call mount of this filesystem.\n");
        goto err1;
    }
为什么呢??问题出在哪里了??

出0入0汤圆

 楼主| 发表于 2014-10-29 11:44:13 | 显示全部楼层
应该是底层的读写rt_device_read(device, sector, buff, count)有问题。
到底问题出在哪呢??
直接用fatfs是没问题的,但一加上rt-thread的device就有问题。

出0入0汤圆

 楼主| 发表于 2014-10-29 15:05:02 | 显示全部楼层
本帖最后由 zenith1032 于 2014-10-29 15:15 编辑

/* Miscellaneous Functions */
DRESULT disk_ioctl(BYTE drv, BYTE ctrl, void *buff)
{
    rt_device_t device = disk[drv];

    if (device == RT_NULL)
        return RES_ERROR;
到了这里就报错,跳出。               

出0入0汤圆

 楼主| 发表于 2014-10-29 15:52:43 | 显示全部楼层
stat = disk_initialize(fs->drv);        /* Initialize low level disk I/O layer */

这里有问题了吧??

下面有
/* Initialize a Drive */
DSTATUS disk_initialize(BYTE drv)
{
    return 0;
}

等于什么都没做吧??

出0入0汤圆

 楼主| 发表于 2014-10-30 11:03:42 | 显示全部楼层
static
FRESULT chk_mounted (        /* FR_OK(0): successful, !=0: any error occurred */
        const TCHAR **path,        /* Pointer to pointer to the path name (drive number) */
        FATFS **rfs,                /* Pointer to pointer to the found file system object */
        BYTE chk_wp                        /* !=0: Check media write protection for write access */
)       
……………………
/* Following code initializes the file system object */       
        if (LD_WORD(fs->win+BPB_BytsPerSec) != SS(fs))          return FR_NO_FILESYSTEM;
       
这里跳出错误,

出0入0汤圆

发表于 2014-10-30 12:31:49 | 显示全部楼层
使用的新MSD驱动吧,要使用新的SPI驱动。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-10-30 14:58:09 | 显示全部楼层
唉,能力所限,找不出问题在哪了,下载了个rt-thread 1.0.0版本的。初始化成功。
所以,1.2.0和1.2.2版本的elm文件系统,在LPC1768上移植是肯定有问题的。
希望有能力的人留意下吧。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-8 12:50

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

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