msh下list_device,无法发现SD0设备

发布于 2020-04-06 10:18:47
大家好,向各位请教个问题:

硬件平台:STM32F405
软件平台:RTT-LTS3.1.

在RT-Thread Settings中,已经使能DFS和Fatfs组件了,且SD卡槽中已经插入8G的SD卡,板子上电后,在msh下,用list_device命令打印,没有看到SD0设备,
且执行ls, mkdir或mkfs等命令时,msh提示无法找到相关设备,是不是配置上漏了什么设置啊,还是需要自己写代码显示调用文件系统的初始化函数啊?

我的配置文件如下:

/* Device virtual file system */

#define RT_USING_DFS
#define DFS_USING_WORKDIR
#define DFS_FILESYSTEMS_MAX 2
#define DFS_FILESYSTEM_TYPES_MAX 2
#define DFS_FD_MAX 16
#define RT_USING_DFS_ELMFAT

/* elm-chan's FatFs, Generic FAT Filesystem Module */

#define RT_DFS_ELM_CODE_PAGE 437
#define RT_DFS_ELM_WORD_ACCESS
#define RT_DFS_ELM_USE_LFN_3
#define RT_DFS_ELM_USE_LFN 3
#define RT_DFS_ELM_MAX_LFN 255
#define RT_DFS_ELM_DRIVES 2
#define RT_DFS_ELM_MAX_SECTOR_SIZE 512
#define RT_DFS_ELM_REENTRANT
/* end of elm-chan's FatFs, Generic FAT Filesystem Module */
#define RT_USING_DFS_DEVFS
/* end of Device virtual file system */



谢谢大家了,在线等!!!


查看更多

关注者
0
被浏览
693
7 个回答
xquery
xquery 2020-04-17
我也同问,问题解决了没?
1721030821
1721030821 2020-04-29
    本帖最后由 1721030821 于 2020-4-29 13:58 编辑


不知道是不是遇到跟我一样的问题,我的问题是文件系统先挂载了,然后sd0块设备后注册的,导致查询不到块设备sd0,这并不是我故意后注册块设备,我仿真查询到SD卡系统初始化的时候,上电过程中存在延时mmcsd_power_up()这个函数中,导致块设备初始化线程挂起(SDIO驱动SD卡是系统自动注册块设备的),在自己写的线程中挂载文件系统的语句就先运行了,导致运行不正常,解决方式是在SD卡格式化前加一小段延时
void mnt_init(void)
{
rt_thread_mdelay(100);
mkfs("elm","sd0");//挂在前需格式化
if(dfs_mount("sd0","/","elm",0,0)==0) //挂载文件系统,参数:块设备名称、挂载目录、文件系统类型、读写标志、私有数据0
{
rt_kprintf("dfs mount success\r\n");
}
else
{
rt_kprintf("dfs mount failed\r\n");
}
}
SDIO驱动SD卡参考链接

参考链接




1588139881(1).jpg
三点水兽
三点水兽 2020-05-06
xquery 发表于 2020-4-17 16:09
我也同问,问题解决了没?


没有解决,你呢
三点水兽
三点水兽 2020-05-06
1721030821 发表于 2020-4-29 13:56
不知道是不是遇到跟我一样的问题,我的问题是文件系统先挂载了,然后sd0块设备后注册的,导致查询不到块设 ...


老哥,按照您给的参考链接,还是不行啊,list_device命令,还是没有sd0设备
三点水兽
三点水兽 2020-05-06
RTT不是已经支持“Studio 自动生成”SDIO的驱动了,该使能都使能了,为什么还是不行呢
xquery
xquery 2020-05-11
我的问题解决了,我用用的是ENV+KEIL的开发方式。
这个与步骤有很大的关系。
第一步,需要使用CubeMX软件,开启SDIO接口
第二,然后修改kconfig
第三,使用ENV开启相关配置
第四,使用scons构建工程
jayash
jayash 2020-05-13
SD卡需检测到卡存在或者热插拔才注册设备sd0
遇见过没焊接上拉电阻后不能识别的,确认电路焊接了上拉电阻

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览