嵌入式技术论坛
直播中

马占云

7年用户 1525经验值
私信 关注
[问答]

STM32f429在挂载yaffs文件系统时出现异常是何原因

rtthread V3.1.5
stm32f429-atk-apollo

问题点:

nand flash初始化成功;
但在挂载yaffs文件系统时,出现异常。

代码如下

1.jpg

回帖(3)

王越建

2022-9-26 14:48:01
是我的例子里就这么写的,还是你简化了?

1.直接写 “mt29f” 这个字符串是有风险的,先查找设备,然后用超找到的设备名当参数。
2.你没有调用 yaffs_start_up 这个初始化 yaffs 函数吧。
//    rt_mtd_nand_t mtd_dev = RT_NULL;
//    mtd_dev = (rt_mtd_nand_t)rt_device_find("mt29f");
//    if (mtd_dev == RT_NULL)
//    {
//        rt_kprintf("no mtd device foundn");
//        return -RT_ENOSYS;
//    }
//    yaffs_start_up();
//    result = dfs_mount(mtd_dev->parent.parent.name, "/usr", "yaffs", 0, 0);
//    if (result == RT_EOK)
//    {
//        rt_kprintf("Mount YAFFS2 on NAND successfullyn");
//    }
//    else
//    {
//        result = dfs_mkfs("yaffs", mtd_dev->parent.parent.name);
//        if (result == RT_EOK)
//        {
//            result = dfs_mount(mtd_dev->parent.parent.name, "/usr", "yaffs", 0, 0);
//        }
//        else
//        {
//            rt_kprintf("Mount YAFFS2 on NAND failedn");
//            return -RT_ERROR;
//        }
//        rt_kprintf("Mount YAFFS2 on NAND successfullyn");
//    }
还有,一个地方是 yaffs_flashif.c 中的 yaffs_start_up 函数
mtd_nand = (rt_mtd_nand_t)rt_device_find("root");
这里得改成 rt_device_find("mt29f");

yaffs 的源码替换过了吗?
举报

马占云

2022-9-26 14:48:09
调试过使用USB U盘模式连接电脑查看nand flash中的数据吗?
举报

王越建

2022-9-26 14:48:16
没有,nand 驱动调通了?
我看到过一个叫 ufs ?的东西,把片上 flash 当作U盘,以拷贝文件的形式来升级固件。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分