怎么解决HMI-Board在调试4bitSDHI挂载文件系统失败的问题呢?

电子说

1.2w人已加入

描述

这两天在学习使用HMI-Board的SDHI功能,在挂载文件系统时遇到了开发实践指南中提到挂载文件系统失败的问题,根据开发实践指南中的方法能够解决1bit位SDHI挂载文件系统失败的问题,但在使用4bit位SDHI的时候,同样的代码会再次挂载失败,如下图所示。

SD卡

所以本文提出了另一种解决方法。具体实践如下。(注意本文的解决方法仅为挂载失败的解决方法,至于其他的初始化配置请参考实践开发指南中的第十五章《瑞萨RA6M3上的SDHI实践》)
将图中的原始代码的_sdcard_mount函数修改为下列代码,即可实现正常挂载文件系统。_sdcard_mount函数的位置如下图中所示。

static void _sdcard_mount(void)
{
rt_device_t device;
static int mount_state = 1;
device = rt_device_find("sd");
rt_kprintf("rt_device_find %x rn", device);
if (device == NULL)
{
mmcsd_wait_cd_changed(0);
sdcard_change();
mmcsd_wait_cd_changed(RT_WAITING_FOREVER);
device = rt_device_find("sd");
}
if (mount_state != RT_EOK)
{
//mkfs("elm", "sd"); //将SD卡按照“elm”格式格式化,仅格式化一次即可
mount_state = dfs_mount("sd", "/", "elm", 0, 0);
if (mount_state == RT_EOK)
{
LOG_I("sd card mount to '/'");
}
else
{
LOG_W("sd card mount to '/' failed!");
}
}
}

SD卡

挂载成功截图如下图所示。

SD卡

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分