【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

随着sd卡的流行,sd卡在嵌入式设备上使用的场景也越来越多。那下面我们可以看一下,linux驱动框架上是怎么处理sd卡驱动的?

1、代码目录地址

drivers/mmc

2、基本结构

从mmc的代码结构可以看得出,主要分为两个部分,其中core为协议部分,host为各个soc的适配部分

host是我们需要真正关心的代码

3、以s3c为例,观察makefile

obj-$(CONFIG_MMC_SDHCI_S3C)  += sdhci-s3c.o
......
obj-$(CONFIG_MMC_S3C)       += s3cmci.o

4、根据s3c阅读Kconfig,确认s3c下的sd卡还依赖哪些文件

config MMC_SDHCI_S3Ctristate "SDHCI support on Samsung S3C SoC"depends on MMC_SDHCI && PLAT_SAMSUNGhelpThis selects the Secure Digital Host Controller Interface (SDHCI)often referrered to as the HSMMC block in some of the Samsung S3Crange of SoC.If you have a controller with this interface, say Y or M here.If unsure, say N.config MMC_SDHCI_S3C_DMAbool "DMA support on S3C SDHCI"depends on MMC_SDHCI_S3ChelpEnable DMA support on the Samsung S3C SDHCI glue. The DMAhas proved to be problematic if the controller encounterscertain errors, and thus should be treated with care.YMMV.config MMC_S3Ctristate "Samsung S3C SD/MMC Card Interface support"depends on ARCH_S3C24XXdepends on S3C24XX_DMAChelpThis selects a driver for the MCI interface found inSamsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.If you have a board based on one of those and a MMC/SDslot, say Y or M here.If unsure, say N.

5、MMC_S3C和MMC_SDHCI_S3C是主要的macro,接着了解两个macro对应文件的数据结构

首先看一下s3cmci.c文件,

static const struct mmc_host_ops s3cmci_ops = {.request = s3cmci_request,.set_ios  = s3cmci_set_ios,.get_ro       = mmc_gpio_get_ro,.get_cd      = mmc_gpio_get_cd,.enable_sdio_irq = s3cmci_enable_sdio_irq,
};

再看一下sdhci-s3c.c文件,

static struct sdhci_ops sdhci_s3c_ops = {.get_max_clock     = sdhci_s3c_get_max_clk,.set_clock     = sdhci_s3c_set_clock,.get_min_clock       = sdhci_s3c_get_min_clock,.set_bus_width       = sdhci_set_bus_width,.reset           = sdhci_reset,.set_uhs_signaling   = sdhci_set_uhs_signaling,
};

6 、从host角度来说,有了platform driver和上面的host driver,驱动流程就算搞清楚了。

但是如果深入下去的话,还是需要好好读一下sd协议,这里面花的时间最多。

linux 驱动编写(sd卡驱动)相关推荐

  1. S3C2440 Linux驱动移植——SD卡驱动

    开发板:TQ2440 内核:Linux 2.6.32 PC OS:Ubuntu 11.04 本文将对SD卡驱动的移植做简要介绍. 1.  添加板级信息 打开arch/arm/mach-s3c2440/ ...

  2. LPC1768 SSP0驱动示例——SD卡驱动

    在STM32的SPI驱动上移植过来的,由于代码较长,这里只提供关键代码: /* SSPxSR - bit definitions. */ #define TFE 0x01 #define TNF 0x ...

  3. linux sd卡驱动流程图,SD卡驱动(详细介绍,不明白的人可以仔细看看了.有流程图)-转-OpenEdv-开源电子网...

    ffice ffice" /> 一.SD/MMC卡介绍 1.1.什么是MMC卡 MMC:MMC就是MultiMediaCard的缩写,即多媒体卡.它是一种非易失性存储器件,体积小巧(2 ...

  4. SD卡驱动分析(一)

    Android下的SD卡驱动与标准LINUX下的SD卡驱动好像没有太大的区别,这里就以高通的ANDROID 2.3以代表,来简要分析一下LINUX下SD卡驱动的写法.由于小弟的技术有限,分析的有错的地 ...

  5. Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动——解决无法挂载SD卡的根文件系统

    系列文章目录 Exynos4412 移植针对Samsung的Linux-6.1(一)下载.配置.编译Linux-6.1 Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动 ...

  6. S5PV210开发系列五 sd卡驱动实现

    SD卡(Secure Digital Memory Card)具有体积小.容量大.数据传输快.可插拔.安全性好等优点,被广泛应用于便携式设备上.例如作为数码相机的存储卡,作为手机.平板多媒体扩展卡用的 ...

  7. 详解sd协议以及裸机和u-boot中的sd卡驱动(2)

    3. sd卡驱动 3.1 引入 经过第2章我们知道,要想实现读写sd卡,需要按照sd协议规定的基本传输单位(命令.响应.数据)以及流程(初始化.读.写),向sd卡发送信号或者从sd卡接收信号. 为了简 ...

  8. linux sd卡驱动视频,详解linux 驱动编写(sd卡驱动)

    随着sd卡的流行,sd卡在嵌入式设备上使用的场景也越来越多.那下面我们可以看一下,linux驱动框架上是怎么处理sd卡驱动的? 1.代码目录地址 drivers/mmc 2.基本结构 从mmc的代码结 ...

  9. sd 卡驱动在2.6内核的编写.sd/mmc/sdio kernel,sd/mmc/sdio 内核

    [转帖请注明出处:blog.csdn.net/lanmanck] sd卡驱动主要参照已有的文件即可,2410,9260都挺好.其实写驱动主要是搞清楚工作流程即可.我这里写一些心得与大家分享下,基于2. ...

最新文章

  1. AFNetWorking 队列请求
  2. .Net定时弹出窗口(c#)
  3. 常见 Serverless 架构模式
  4. 使用vue制作富文本框
  5. can't select mysql database_ERROR 1006 (HY000) Can't create database (errno: 13) MySQL 5.6.12
  6. HTTP/2中的二进制分帧
  7. python高级-异常(13)
  8. 图解机器学习算法(7) | 随机森林分类模型详解(机器学习通关指南·完结)
  9. html网页静态时钟代码,网页时钟实现代码html5
  10. sosoapi初次接触
  11. Java实现静态代理
  12. php 生成电话名片二维码
  13. STM32使用W25QXX flash闪存芯片基于串口自由写入或读取数据
  14. xmlDocument是什么?
  15. 服务器winsxs文件夹怎么清理工具,win7 winsxs文件夹怎么清理|win7清理winsxs文件夹方法...
  16. python实现千牛客服自动回复语_客服自动回复设置技巧,别再傻傻全部自己回复了...
  17. js仿照 蚂蚁森林 效果
  18. C中strchr()函数用法
  19. 字长模型LP64,ILP64,LLP64,ILP32,LP32
  20. 微信商城商家该如何运营

热门文章

  1. 如何使电脑不会重复启动同一个进程
  2. java二叉树的创建,遍历及其他方法
  3. js中substr与substring的差别
  4. mysql mysql_real_connect 内存泄露
  5. Delphi使用经验笔记。
  6. STM32应用笔记转载
  7. 面向对象三之对象的使用方法
  8. iar atof 问题
  9. springcloud工作笔记097---idea集成Mapper接口点击后自动跳转到对应的xml文件中
  10. Web前端工作笔记007---h5 canvas_雨滴头像合成_图像合成_合成雨滴头像