linux 应用程序架构图,Linux MMC framework(1)_软件架构

Linux MMC framework(1)_软件架构

作者:wowo 发布于:2017-1-10 22:24

分类:通信类协议

1. 前言

由[1]中MMC、SD、SDIO的介绍可知,这三种技术都是起源于MMC技术,有很多共性,因此Linux kernel统一使用MMC framework管理所有和这三种技术有关的设备。

本文将基于[1]对MMC技术的介绍,学习Linux kernel MMC framework的软件架构。

2. 软件架构

Linux kernel的驱动框架有两个要点(尽管本站前面的文章已经多次强调,本文还是要再说明一下,因为这样的设计思想,说一千遍都不会烦):

1)抽象硬件(硬件架构是什么样子,驱动框架就应该是什么样子)。

2)向“客户”提供使用该硬件的API(之前我们提到最多的客户是“用户空间的Application”,不过也有其它“客户”,例如内核空间的其它driver、其它framework)。

以本文的描述对象为例,MMC framework的软件架构如下面“图片1”所示:

bb51bc73026c961b4e5449f9fce234ba.gif

图片1 Linux MMC framework软件架构

MMC framework分别有“从左到右”和“从下到上”两种层次结构。

1) 从左到右

MMC协议是一个总线协议,因此包括Host controller、Bus、Card三类实体(从左到右)。相应的,MMC framework抽象出了host、bus、card三个软件实体,以便和硬件一一对应:

host,负责驱动Host controller,提供诸如访问card的寄存器、检测card的插拔、读写card等操作方法。从设备模型的角度看,host会检测卡的插入,并向bus注册MMC card设备;

bus,是MMC bus的虚拟抽象,以标准设备模型的方式,收纳MMC card(device)以及对应的MMC driver(driver);

card,抽象具体的MMC卡,由对应的MMC driver驱动(从这个角度看,可以忽略MMC的技术细节,只需关心一个个具有特定功能的卡设备,如存储卡、WIFI卡、GPS卡等等)。

2)从下到上

MMC framework从下到上也有3个层次(老生常谈了):

MMC core位于中间,是MMC framework的核心实现,负责抽象host、bus、card等软件实体,负责向底层提供统一、便利的编写Host controller driver的API;

MMC host controller driver位于底层,基于MMC core提供的框架,驱动具体的硬件(MMC controller);

MMC card driver位于最上面,负责驱动MMC core抽象出来的虚拟的card设备,并对接内核其它的framework(例如块设备、TTY、wireless等),实现具体的功能。

3. 工作流程

基于图片1中的软件架构,Linux MMC framework的工作流程如下:

1fc06dfa36f7711bee39488d8acff35b.gif

图片2 MMC操作流程

暂时不进行详细介绍,感兴趣的同学可以照着代码先看看。后续其它文章会逐一展开。

原创文章,转发请注明出处。蜗窝科技,www.wowotech.net。c6a6308114f401be7df747ae46f2b4db.png

评论:

北海风云

2019-08-20 14:29

图挂了 。能补一下吗 ?

zoro

2017-03-25 23:55

请问框图是用什么软件画的啊

2017-03-27 08:49

@zoro:ppt

2017-05-04 17:30

@wowo:PPT 画的这么工整,牛逼

2017-05-05 08:23

@江南书生:哪里,过奖了。其实office2007之后,用ppt画图还是挺漂亮的,那些模板的配色,做到不错:-)

2017-03-01 14:38

青春年少

2017-02-13 16:57

写的真好

2017-01-25 10:37

清晰明了,赞

发表评论:

昵称

邮件地址 (选填)

个人主页 (选填)

d4e3789769c8ad44c7e403863bfc3822.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值