Chinaunix首页 | 论坛 | 博客
  • 博客访问: 453610
  • 博文数量: 90
  • 博客积分: 2158
  • 博客等级: 大尉
  • 技术积分: 1435
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-12 17:02
个人简介

怎么了选择

文章分类
文章存档

2024年(1)

2023年(1)

2019年(1)

2018年(5)

2017年(5)

2015年(1)

2014年(1)

2013年(1)

2012年(74)

分类:

2012-02-04 11:33:39

浅析sd卡设备申请和驱动绑定简单流程

  sd卡插入之后,首先GPIO8发生中断,执行mmc_rescan()分配该sd卡的mmc_card结构体,该sd结构体分配的bus总线为mmc_bus_type,也就是该mmc_card结构体会尝试从mmc_bus总线的drivers链表上获取与mmc_card结构体从sd卡硬件读取出来的vendor值相匹配的driver,如果找到,那么说明该mmc_card有driver来驱动sd单元,否则没有,sd单元,即:mmc_card结构体,经过上述的过程之后,mmc_rescan()继续细致初始化sd单元的子功能单元-func,函数sdio_alloc_func()申请到的sdio_func子功能单元所属bus总线为sdio_bus_type,对于wlan驱动来说,wlan仅仅使用了sdio_func,所以wlan驱动程序也就仅仅实现了sdio_func子功能单元驱动,没有去实现mmc_card结构体的驱动,所以一个sd接口设备会有2种驱动,分别位于2条不同的bus总线上,一个是mmc_card结构体设备位于的mmc_bus_type总线上的driver驱动,一个是sdio_func子功能们所在的sdio_bus_type总线上的driver驱动,设备驱动应该分别实现这2条总线下的相应驱动,但实际并不是这样,我们只关心我们用的上的总线,所以我们的wlan仅仅实现了sdio_bus_type总线上的sdio_func子功能驱动,另外drivers\mmc\card\block.c为sd卡支持fat文件系统的驱动文件,具体由module_init(mmc_blk_init)初始化[gliethttp_20080629].

阅读(1438) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~