五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

詳解linux 驅(qū)動編寫(sd卡驅(qū)動)

發(fā)布日期:2022-04-08 12:41 | 文章來源:腳本之家

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

1、代碼目錄地址

drivers/mmc 

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

從mmc的代碼結(jié)構(gòu)可以看得出,主要分為兩個部分,其中core為協(xié)議部分,host為各個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卡還依賴哪些文件

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,接著了解兩個macro對應(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角度來說,有了platform driver和上面的host driver,驅(qū)動流程就算搞清楚了。

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

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

版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時開通

自選配置、實(shí)時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部