电子说
这两天在学习使用HMI-Board的SDHI功能,在挂载文件系统时遇到了开发实践指南中提到挂载文件系统失败的问题,根据开发实践指南中的方法能够解决1bit位SDHI挂载文件系统失败的问题,但在使用4bit位SDHI的时候,同样的代码会再次挂载失败,如下图所示。
所以本文提出了另一种解决方法。具体实践如下。(注意本文的解决方法仅为挂载失败的解决方法,至于其他的初始化配置请参考实践开发指南中的第十五章《瑞萨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!");
}
}
}
挂载成功截图如下图所示。
全部0条评论
快来发表一下你的评论吧 !