麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 服務器 > Linux服務器 > 正文

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

2024-09-05 23:04:42
字體:
供稿:網(wǎng)友

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

1、代碼目錄地址

drivers/mmc 

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

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

host是我們需要真正關心的代碼

3、以s3c為例,觀察makefile

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

4、根據(jù)s3c閱讀Kconfig,確認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對應文件的數(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)容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關教程知識閱讀請移步到服務器教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久草热久草视频 | 亚洲综合色视频在线观看 | 免费毛片观看 | 99影视在线视频免费观看 | 免费一级特黄毛片视频 | 蜜桃传媒视频麻豆第一区免费观看 | 一级在线观看视频 | 草莓视频在线导航 | 久在线观看福利视频69 | 免费看欧美一级特黄a大片 久久免费视频一区二区三区 | 亚洲极色 | 久久久久久久久久久久99 | 91久久国产| 久久91亚洲人成电影网站 | 久久国产综合精品 | 久久久国产精品成人免费 | 久草成人在线 | 亚洲第一男人天堂 | 久久人添人人爽人人爽人人片av | 日本欧美一区二区三区视频麻豆 | 九一免费国产 | 在线a| 伊人999 | a视频网站 | 一区二区久久久久草草 | 日日草夜夜 | 色播亚洲| 久久91精品视频 | 视频一区二区精品 | 久久网页 | 欧美不卡三区 | 国产精品一区在线观看 | 欧日韩在线视频 | 免费视频a | 午夜精品成人一区二区 | 色视频欧美 | 看一级毛片 | 欧美精品久久久久久久多人混战 | 97人人草 | 99国产精品国产免费观看 | xxxx18韩国护士hd老师 |