這兩天在學習使用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!");
}
}
}
掛載成功截圖如下圖所示。
-
SD卡
+關注
關注
2文章
578瀏覽量
65340 -
RT-Thread
+關注
關注
32文章
1377瀏覽量
41621 -
HMI系統
+關注
關注
0文章
20瀏覽量
1104
發布評論請先 登錄
評論