VxWorks驱动开发:SDIO驱动和文件系统

添加SDIO驱动相关组件

添加SD卡驱动相关的组件

在这里插入图片描述

  使能上述4个组件,根据这四个组件名字可以大致推测出:
    DRV_TI_MMCHS_CTRL组件和具体的处理器有关,也就是SDIO驱动部分
    DRV_SDSTORAGE_CARD组件和SDIO协议有关,和处理器无关,它仅仅是个协议
    DRV_GPIO_FDT_OMAP组件还是和处理器有关,需要使能设备树来初始化相关硬件引脚
    DRV_TI_EDMA3组件也是和处理器相关的,使能DMA后对文件的读写操作通过DMA的方式,否则是很占用CPU资源的。
在这里插入图片描述
在这里插入图片描述

添加EMMC驱动组件

在这里插入图片描述

  因为开发板上也有一个EMMC设备,所以也要将EMMC的组件添加上,方便以后使用EMMC。

上电运行

  上电后发现sd卡的两个分区皆挂载成功了,但无法cd进入,返回error=0x14。

VxWorks支持的文件系统

rawFS文件系统

  sd卡我做了两个分区,一个是Fatfs32文件系统,一个是ext3文件系统。
在这里插入图片描述

  从打印信息可以看到内核在挂在SD卡时将其挂在成rawFS文件系统了,rawFs 即将整个块设备作为单个文件进行操作,不存在文件和目录层次性管理功能。对于一个挂接的块设备,如果 Vxworks 无法辨别其已有文件系统类型,则就以 rawFs 作为该块设备的默认文件系统。
  执行ls -l命令,可以看到sd0a和sd0b(也就是SD卡的Fatfs32和ext3分区)是目录类型,但没有rwx中的任何权限,所以这说明我们没有添加dosFS文件系统组件,内核挂载时无法识别这两种文件系统,所以全部按照rawFS的类型来挂载了。

添加dosFS组件

在这里插入图片描述

  可以看到启动后sd0a挂载成功,但是sd0b依然按照rawFS挂载了,这是因为dosFS无法识别ext3文件系统。
在这里插入图片描述

  ls -l后可以看到sd0a也具有rwx权限了,也能cd进去了。

おすすめ

転載: blog.csdn.net/weixin_42314225/article/details/121409181