Linux下sdio设备扫描过程,嵌入式 linux下MMC/SD/SDIO识别与操作

我们知道host在扫描卡的过程中,其识别的顺序为SDIO  SD MMC,并且从它的注释可以看出,这个顺序是很重要的。那这篇文章,我们就看看SDIO的识别过程,它对应的函数就是mmc_attach_sdio(host) (函数位于文件drivers/mmc/core/sdio.c)

这个函数大概来说做了如下的工作

1、向卡发送CMD5命令,该命令有两个作用:第一,通过判断卡是否有反馈信息来判断是否为SDIO设备(只有SDIO设备才对CMD5命令有反馈,其他卡是没有回馈的);第二,如果是SDIO设备,就会给host反馈电压信息,就是说告诉host,本卡所能支持的电压是多少多少。

2、host根据SDIO卡反馈回来的电压要求,给其提供合适的电压。

3、初始化该SDIO卡

4、注册SDIO的各个功能模块

5、注册SDIO卡

对于以上功能的具体解释,下面将结合程序娓娓道来

1、CMD5命令的发送

0818b9ca8b590ca3270a3433284dd417.png

第789行的函数就是发送的CMD5命令,如果卡对该命令有回馈的话,err就是0,否则,err为非0,直接退出了;并且需要重点说明的一点就是,该函数的最后一个参数ocr,它是存储反馈命令的,SDIO设备对CMD5的反馈命令为R4,下面来仔细分析一下这个R4,因为后面要用到这个R4命令。从S

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统中,SDIO(Secure Digital Input/Output)是一种用于在嵌入式系统中连接外部设备的接口标准。Linux内核中的SDIO子系统是一个驱动程序集合,提供了与SDIO设备通信和管理的功能。 SDIO子系统在Linux内核中作为一个子系统存在,它不仅仅是一个单独的驱动程序,而是包含了与SDIO相关的多个驱动程序和功能。这些驱动程序和功能包括与SDIO设备通信的接口、SDIO主机的资源管理、中断处理等。 在Linux内核中,SDIO子系统提供了对SDIO设备的支持。SDIO设备包括各种外部设备,如无线网卡、蓝牙模块、摄像头等。SDIO子系统通过与SDIO设备的通信,使得这些设备能够在Linux系统中被识别和使用。 SDIO子系统的核心组件是SDIO核心驱动(mmc_core)。该驱动负责SDIO设备的控制和管理,包括设备的初始化、数据传输、中断处理等。SDIO核心驱动与SDIO设备的具体实现有关,不同的SDIO设备可能需要不同的驱动程序来支持。 总而言之,LinuxSDIO子系统是一个包含了多个驱动程序和功能的子系统,用于支持和管理SDIO设备Linux系统中的使用。它通过与SDIO设备的通信实现了与外部设备的连接和交互。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux内核之mmc子系统-sdio](https://blog.csdn.net/mrwangwang/article/details/35997153)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值