欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解linux 驅(qū)動(dòng)編寫(xiě)(sd卡驅(qū)動(dòng))

 更新時(shí)間:2018年04月12日 08:33:18   作者:feixiaoxing  
這篇文章主要介紹了詳解linux 驅(qū)動(dòng)編寫(xiě)(sd卡驅(qū)動(dòng)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

隨著sd卡的流行,sd卡在嵌入式設(shè)備上使用的場(chǎng)景也越來(lái)越多。那下面我們可以看一下,linux驅(qū)動(dòng)框架上是怎么處理sd卡驅(qū)動(dòng)的?

1、代碼目錄地址

drivers/mmc 

2、基本結(jié)構(gòu)

從mmc的代碼結(jié)構(gòu)可以看得出,主要分為兩個(gè)部分,其中core為協(xié)議部分,host為各個(gè)soc的適配部分

host是我們需要真正關(guān)心的代碼

3、以s3c為例,觀察makefile

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

4、根據(jù)s3c閱讀Kconfig,確認(rèn)s3c下的sd卡還依賴(lài)哪些文件

config MMC_SDHCI_S3C 
  tristate "SDHCI support on Samsung S3C SoC" 
  depends on MMC_SDHCI && PLAT_SAMSUNG 
  help 
   This selects the Secure Digital Host Controller Interface (SDHCI) 
   often referrered to as the HSMMC block in some of the Samsung S3C 
   range of SoC. 
 
   If you have a controller with this interface, say Y or M here. 
 
   If unsure, say N. 
 
config MMC_SDHCI_S3C_DMA 
  bool "DMA support on S3C SDHCI" 
  depends on MMC_SDHCI_S3C 
  help 
   Enable DMA support on the Samsung S3C SDHCI glue. The DMA 
   has proved to be problematic if the controller encounters 
   certain errors, and thus should be treated with care. 
 
   YMMV. 
 
config MMC_S3C 
  tristate "Samsung S3C SD/MMC Card Interface support" 
  depends on ARCH_S3C24XX 
  depends on S3C24XX_DMAC 
  help 
   This selects a driver for the MCI interface found in 
     Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs. 
   If you have a board based on one of those and a MMC/SD 
   slot, say Y or M here. 
 
   If unsure, say N. 

5、MMC_S3C和MMC_SDHCI_S3C是主要的macro,接著了解兩個(gè)macro對(duì)應(yīng)文件的數(shù)據(jù)結(jié)構(gòu)

首先看一下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角度來(lái)說(shuō),有了platform driver和上面的host driver,驅(qū)動(dòng)流程就算搞清楚了。

但是如果深入下去的話(huà),還是需要好好讀一下sd協(xié)議,這里面花的時(shí)間最多。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解centos7 下雙網(wǎng)卡如何配置靜態(tài)IP

    詳解centos7 下雙網(wǎng)卡如何配置靜態(tài)IP

    這篇文章主要介紹了詳解centos7 下雙網(wǎng)卡如何配置靜態(tài)IP,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • centos7切換啟動(dòng)內(nèi)核與切換啟動(dòng)模式的講解

    centos7切換啟動(dòng)內(nèi)核與切換啟動(dòng)模式的講解

    今天小編就為大家分享一篇關(guān)于centos7切換啟動(dòng)內(nèi)核與切換啟動(dòng)模式的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04
  • Linux的第二網(wǎng)卡的配置全過(guò)程

    Linux的第二網(wǎng)卡的配置全過(guò)程

    這篇文章主要介紹了Linux的第二網(wǎng)卡的配置全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • CentOS 7.4下安裝Oracle 11.2.0.4數(shù)據(jù)庫(kù)的方法

    CentOS 7.4下安裝Oracle 11.2.0.4數(shù)據(jù)庫(kù)的方法

    本篇文章主要介紹了CentOS 7.4下安裝Oracle 11.2.0.4數(shù)據(jù)庫(kù)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Debian 9系統(tǒng)下修改默認(rèn)網(wǎng)卡為eth0的方法

    Debian 9系統(tǒng)下修改默認(rèn)網(wǎng)卡為eth0的方法

    這篇文章主要給大家介紹了在Debian 9系統(tǒng)下修改默認(rèn)網(wǎng)卡為eth0的方法,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-06-06
  • Linux 詳解 /var/log/xferlog的各個(gè)字段解析

    Linux 詳解 /var/log/xferlog的各個(gè)字段解析

    這篇文章主要介紹了Linux 詳解 /var/log/xferlog的各個(gè)字段解析的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • LINUX 防火墻 firewalld-cmd命令詳解

    LINUX 防火墻 firewalld-cmd命令詳解

    firewalld 防火墻為了簡(jiǎn)化管理,將所有網(wǎng)絡(luò)流量分為多個(gè)區(qū)域(zone),然后根據(jù)數(shù)據(jù)包的源IP地址或傳入的網(wǎng)絡(luò)接口等條件將流量傳入相應(yīng)區(qū)域,每個(gè)區(qū)域都定義了自己打開(kāi)或者關(guān)閉的端口和服務(wù)列表,這篇文章主要介紹了LINUX 防火墻 firewalld-cmd命令詳解,需要的朋友可以參考下
    2024-01-01
  • linux環(huán)境kafka安裝及配置方式

    linux環(huán)境kafka安裝及配置方式

    在Linux環(huán)境中安裝Kafka需要下載對(duì)應(yīng)版本的資源包,并安裝配置Zookeeper,此教程以kafka_2.12-2.5.1版本和apache-zookeeper-3.6.1為例,詳細(xì)介紹了單體及集群環(huán)境下的安裝步驟、配置修改、啟動(dòng)驗(yàn)證以及Kerberos認(rèn)證配置,同時(shí)提供了kafka常用命令和注意事項(xiàng),適合初學(xué)者參考
    2024-10-10
  • VMware下CentOS 6.7安裝圖文教程

    VMware下CentOS 6.7安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了VMware下CentOS 6.7安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • linux中$符號(hào)的基礎(chǔ)用法總結(jié)

    linux中$符號(hào)的基礎(chǔ)用法總結(jié)

    這篇文章主要給大家介紹了關(guān)于linux中$符號(hào)的基礎(chǔ)用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用linux系統(tǒng)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評(píng)論