VxWorks 6.9下Kontron SMARC-sAMX6i的EMMC访问问题求助
VxWorks 6.9下Kontron SMARC-sAMX6i eMMC访问问题解决
问题背景
硬件:Kontron SMARC-sAMX6i
VxWorks版本:6.9
eMMC已在Linux下格式化为FAT32,U-Boot阶段可通过mmc dev 2和ums 0 mmc 2正常访问;VxWorks启动后devs命令识别到/mmc0:0设备,但无法用ls/cd访问,执行dosFsVolFormat "/mmc0:0"格式化后自动切换回rawFs。
解决步骤
1. 卸载原始rawFs挂载
当前设备默认以rawFs挂载,需先卸载才能重新挂载为DOSFS:
rawFsUnmount "/mmc0:0"
2. 手动挂载为DOSFS
格式化完成后,手动调用dosFsMount指定挂载点:
# 执行格式化(若未完成) dosFsVolFormat "/mmc0:0" # 将设备挂载到自定义路径,例如/emmc dosFsMount "/mmc0:0", "/emmc", 0, 0, 0
操作完成后,即可通过cd /emmc和ls命令访问eMMC内容。
3. 确认VxWorks镜像组件配置
检查镜像是否包含完整的DOSFS支持:
- 若使用Workbench构建镜像,确保已勾选
DOS File System组件,以及FAT32 Support子组件 - 若直接修改配置宏,确认
INCLUDE_DOSFS、INCLUDE_DOSFS_FAT32已在config.h中定义
4. 验证分区表完整性
Linux格式化的分区表可能在VxWorks下识别异常,用fdisk工具检查:
fdisk -l /mmc0:0
若分区表无效,需在VxWorks下重新创建分区:
- 执行
fdisk /mmc0:0进入分区工具,创建主分区 - 对新生成的分区(如
/mmc0:1)执行dosFsVolFormat "/mmc0:1" - 挂载该分区:
dosFsMount "/mmc0:1", "/emmc", 0, 0, 0
5. 检查MMC驱动硬件适配
确认BSP中MMC驱动参数与硬件匹配:
- 查看
sysMmcdInit函数的配置,确保总线宽度(如4-bit/8-bit)、时钟频率设置符合Kontron SMARC-sAMX6i的硬件规格 - 若驱动参数不正确,可能导致文件系统挂载不稳定
内容的提问来源于stack exchange,提问作者Dano92
相关产品推荐
相关产品推荐

