在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

遵循SD Host controller Specification協(xié)議的MMC設(shè)備驅(qū)動(dòng)開發(fā)討論

冬至子 ? 來源:嵌入式系統(tǒng)研發(fā) ? 作者:ESDev ? 2023-06-09 14:43 ? 次閱讀

1.概述

本文主要講述了U-boot的MMC DM框架驅(qū)動(dòng)的移植方法。DM是Driver Model的簡(jiǎn)稱,是U-boot的基本驅(qū)動(dòng)框架。常見的MMC設(shè)備包括SD卡、eMMC存儲(chǔ)器等。本文討論遵循SD Host controller Specification協(xié)議的MMC設(shè)備驅(qū)動(dòng)開發(fā)。

示例U-boot版本:2022.10。硬件平臺(tái):ARM SOC。

2.原理

在U-boot中,對(duì)遵循SD Host controller Specification 協(xié)議的MMC設(shè)備有著完備的底層驅(qū)動(dòng)支持。因此,移植某個(gè)特定MMC外設(shè)驅(qū)動(dòng),具體工作為調(diào)用U-boot自有的MMC底層標(biāo)準(zhǔn)驅(qū)動(dòng),實(shí)現(xiàn)對(duì)MMC外設(shè)的訪問和操作。

MMC驅(qū)動(dòng)的工作原理 :首先對(duì)設(shè)備樹文件xx.dts進(jìn)行解析,按照先bind后probe的順序加載MMC驅(qū)動(dòng),分別通過相應(yīng)的bind函數(shù)和probe函數(shù)完成。

U-boot啟動(dòng)后,在讀取MMC設(shè)備節(jié)點(diǎn)的compatible字段后,找到與之匹配的U_BOOT_DRIVER,然后執(zhí)行bind函數(shù)對(duì)驅(qū)動(dòng)進(jìn)行綁定,最后通過probe函數(shù)對(duì)驅(qū)動(dòng)進(jìn)行激活,解析設(shè)備樹的節(jié)點(diǎn)屬性,對(duì)驅(qū)動(dòng)進(jìn)行配置,從而使驅(qū)動(dòng)具備工作條件,供上層應(yīng)用程序調(diào)用。

U-boot的命令子系統(tǒng)包含了眾多測(cè)試命令子集,其中mmc命令集可用來對(duì)MMC驅(qū)動(dòng)進(jìn)行功能測(cè)試,對(duì)MMC設(shè)備進(jìn)行信息查詢和訪問操作。

3.移植方法

3.1 主要工作

U-boot移植MMC DM框架驅(qū)動(dòng)的主要工作包括:

(1)向./drivers/mmc/添加驅(qū)動(dòng)文件源碼xx_sdhci .c(名稱xx由驅(qū)動(dòng)開發(fā)者定義,下同);

(2)在./drivers/mmc/Makefile添加xx_sdhci .c的編譯條目;

(3)在./drivers/mmc/Kconfig添加xx_sdhci .c的編譯配置選項(xiàng);

(4)向./arch/arm/dts/xx.dts中添加MMC設(shè)備節(jié)點(diǎn)。

3.2 驅(qū)動(dòng)源碼設(shè)計(jì)

在U-boot的MMC驅(qū)動(dòng)中,有眾多設(shè)備遵循了SD Host controller Specification 協(xié)議,選取其中的Atmel SDHCI控制器驅(qū)動(dòng),講解驅(qū)動(dòng)代碼的原理和設(shè)計(jì)方法,代碼路徑: ./drivers/mmc/atmel_sdhci.c。自編的驅(qū)動(dòng)文件源碼xx_sdhci .c可參考atmel_sdhci.c進(jìn)行設(shè)計(jì)。

** MMC驅(qū)動(dòng)包括2個(gè)核心函數(shù),即atmel_sdhci_bind和atmel_sdhci_probe函數(shù)** 。

atmel_sdhci_bind函數(shù)用于驅(qū)動(dòng)的綁定。調(diào)用了sdhci_bind函數(shù),位于./drivers/mmc/sdhci.c;而MMC作為一種塊設(shè)備,sdhci_bind函數(shù)進(jìn)一步調(diào)用了mmc_bind函數(shù),位于./drivers/mmc/mmc-uclass.c。

atmel_sdhci_probe函數(shù)用于驅(qū)動(dòng)的激活。atmel_sdhci_probe函數(shù)的主要流程為:首先對(duì)設(shè)備樹進(jìn)行參數(shù)解析,解析出MMC控制器的工作時(shí)鐘頻率、寄存器地址、數(shù)據(jù)寬度、最高工作頻率等參數(shù);然后通過sdhci_setup_cfg函數(shù)進(jìn)行參數(shù)配置,sdhci_setup_cfg函數(shù)位于./drivers/mmc/sdhci.c;最后調(diào)用sdhci_probe函數(shù)完成probe操作。

3.3 MMC設(shè)備樹節(jié)點(diǎn)

在設(shè)備樹添加MMC設(shè)備節(jié)點(diǎn),節(jié)點(diǎn)設(shè)計(jì)方法可以參考./doc/device-tree-bindings/mmc下的文檔。

4.驗(yàn)證方法

4.1編譯mmc測(cè)試工具

為編譯mmc測(cè)試工具,應(yīng)配置U-boot,使能CONFIG_CMD_MMC。

圖片

4.2驅(qū)動(dòng)加載結(jié)果查詢

從本節(jié)開始,將介紹mmc測(cè)試命令的使用方法及執(zhí)行結(jié)果示例。

dm tree命令列出了DM框架驅(qū)動(dòng)的加載結(jié)果。

下面xx_sdhci和mmc_blk前的Probed標(biāo)志為[+],表示驅(qū)動(dòng)已經(jīng)加載成功了。

cli>dm tree

Class Index Probed Driver Name

root 0 [ + ] root_driver root_driver

mmc 0 [ + ] xx_sdhci `-- mmc@xxxxxxxx

blk 0 [ + ] mmc_blk `-- mmc@xxxxxxxx.blk

4.3MMC設(shè)備信息查詢

下面mmc info命令輸出了SD卡的基本信息。

cli>mmc info

Manufacturer ID: 3

OEM: 5344

Name: SD32G

Bus Speed: 2000000

Mode: SD High Speed (50MHz)

Rd Block Len: 512

SD version 3.0

High Capacity: Yes

Capacity: 29.7 GiB

Bus Width: 4-bit

Erase Group Size: 512 Bytes

4.4寫操作

DDR的0x80000000地址向SD卡的100# block位置連續(xù)寫入2個(gè)block數(shù)據(jù)。

cli>mmc write 0x80000000 100 2

2 blocks written: OK

4.5讀操作

從SD卡的100# block位置向DDR的0x90000000地址連續(xù)讀入2個(gè)block數(shù)據(jù)。

cli>mmc read 0x90000000 100 2

2 blocks read: OK

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17019

    瀏覽量

    183260
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7639

    瀏覽量

    166621
  • MMC
    MMC
    +關(guān)注

    關(guān)注

    0

    文章

    77

    瀏覽量

    30912
  • SD卡
    +關(guān)注

    關(guān)注

    2

    文章

    577

    瀏覽量

    65288
  • u-boot
    +關(guān)注

    關(guān)注

    0

    文章

    122

    瀏覽量

    38739
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    sdmmc卡規(guī)范協(xié)議

    sdmmc卡規(guī)范協(xié)議MultiMediaCard Architecture-MultiMediaCard Architecture-MultiMediaCard
    發(fā)表于 07-22 15:07

    Linux下SD驅(qū)動(dòng)移植

    、添加和開發(fā)板相關(guān)的 SD 卡插拔引發(fā)的中斷: #vidrivers/mmc/host/s3cmci.c +1335 在1335行,添加如下內(nèi)容:
    發(fā)表于 09-11 14:09

    【W(wǎng)RTnode2R試用體驗(yàn)】+SD卡的配置

    │ ││ │ < >MMC host test driver│ ││ │*** MMC/SD/SDIO Host
    發(fā)表于 11-03 23:36

    RT-Thread SDIO驅(qū)動(dòng)框架分析之SD驅(qū)動(dòng)

    層中,實(shí)現(xiàn)SD卡、SDIO卡、MMC卡的通用外設(shè)驅(qū)動(dòng)邏輯,如卡的識(shí)別、卡的模塊切換、卡的讀寫操作等,這些都是通用的,遵循SD標(biāo)準(zhǔn)
    發(fā)表于 03-13 16:01

    rt-thread SDIO驅(qū)動(dòng)框架分析(SD卡flash驅(qū)動(dòng)\SD Nand flash驅(qū)動(dòng)

    設(shè)備驅(qū)動(dòng)框架層的具體接口對(duì)于SDIO外設(shè)亦是如此:在設(shè)備驅(qū)動(dòng)框架層中,實(shí)現(xiàn)SD卡、SDIO卡、MMC
    發(fā)表于 04-04 16:26

    1394 Open Host Controller Inte

    1394Open Host Controller InterfaceSpecification The following documents may be useful
    發(fā)表于 06-26 10:11 ?41次下載

    IEEE 1394 火線協(xié)議標(biāo)準(zhǔn)

    1394 Open Host Controller Interface or IEEE 1394 火線協(xié)議標(biāo)準(zhǔn) Specification Release 1.1 January 6,
    發(fā)表于 07-22 14:58 ?107次下載

    sd標(biāo)準(zhǔn)/MMC卡標(biāo)準(zhǔn)

    2 FILE SYSTEM SPECIFICATION SD Memory Card Specifications Part 3 SECURITY SPECIFICATION MMC
    發(fā)表于 07-22 15:03 ?19次下載

    sd卡-mmc卡-CPU說明資料

    sd卡-mmc卡-CPU說明資料:sd卡-mmc卡-CPU說明資料SD Memory Card (Secure Digital Memory
    發(fā)表于 08-22 17:55 ?25次下載

    基于S3C2410的SD MMC驅(qū)動(dòng)的實(shí)現(xiàn)

    設(shè)計(jì)了一個(gè)基于S3C2410 片內(nèi)SDI 的SD/MMC驅(qū)動(dòng),該驅(qū)動(dòng)支持MMC 卡、SD卡、
    發(fā)表于 01-06 15:41 ?53次下載

    mmc卡和sd卡的區(qū)別是什么

    mmc卡和sd卡已經(jīng)是目前運(yùn)用廣泛的兩種的內(nèi)存卡。本文以mmc卡和sd卡為中心,主要介紹了它門兩者的結(jié)構(gòu)應(yīng)用,mmc卡和
    發(fā)表于 12-16 09:06 ?4.9w次閱讀

    基于S3C2410控制器實(shí)現(xiàn)SD/MMC驅(qū)動(dòng)的設(shè)計(jì)

    MMC卡是基于NAND快閃記憶技術(shù)開發(fā)的存儲(chǔ)卡:SD卡是在MMC卡的基礎(chǔ)上開發(fā)研制的一款具有大容量、高性能、安全性好等特點(diǎn)的多功能存儲(chǔ)卡.存
    發(fā)表于 08-19 14:21 ?1920次閱讀
    基于S3C2410控制器實(shí)現(xiàn)<b class='flag-5'>SD</b>/<b class='flag-5'>MMC</b>卡<b class='flag-5'>驅(qū)動(dòng)</b>的設(shè)計(jì)

    Linux MMC開發(fā)指南

    介紹 Linux 內(nèi)核中 SD/MMC 子系統(tǒng)的接口及使用方法,為 SD/MMC 設(shè)備驅(qū)動(dòng)
    的頭像 發(fā)表于 03-06 10:21 ?3785次閱讀
    Linux <b class='flag-5'>MMC</b><b class='flag-5'>開發(fā)</b>指南

    U-boot的MMC DM框架驅(qū)動(dòng)的移植方法

    本文主要講述了U-boot的MMC DM框架驅(qū)動(dòng)的移植方法。DM是Driver Model的簡(jiǎn)稱,是U-boot的基本驅(qū)動(dòng)框架。常見的MMC設(shè)備
    的頭像 發(fā)表于 04-14 10:22 ?3617次閱讀
    U-boot的<b class='flag-5'>MMC</b> DM框架<b class='flag-5'>驅(qū)動(dòng)</b>的移植方法

    Xilinx FPGA NVMe控制器,NVMe Host Controller IP

    NVMe Host Controller IP可以連接高速存儲(chǔ)PCIe SSD,無需CPU和外部存儲(chǔ)器,自動(dòng)加速處理所有的NVMe協(xié)議命令,具備獨(dú)立的數(shù)據(jù)寫入AXI4-Stream/FIFO接口和數(shù)
    的頭像 發(fā)表于 02-18 11:27 ?1222次閱讀
    Xilinx FPGA NVMe控制器,NVMe <b class='flag-5'>Host</b> <b class='flag-5'>Controller</b> IP
    主站蜘蛛池模板: 久久久久久久综合狠狠综合 | 成人a毛片视频免费看 | 欧美黑人黄色片 | 激情网页 | 91热成人精品国产免费 | 黄色午夜视频 | 草久久久久 | 偷偷操不一样的久久 | 国产精品久久精品牛牛影视 | 在线观看免费xx高清视频 | 国模小丫大尺度啪啪人体 | 高h乱肉辣文辣书阁 | 国模大尺度在线 | 1024你懂的在线观看 | 国产一级大片在线观看 | 特级黄视频 | 亚洲综合色站 | 国产卡一卡2卡三卡免费视频 | 美女一级毛片毛片在线播放 | 鲁一鲁色一色 | 日韩一级黄色录像 | 五月婷婷天 | 一级大片视频 | 欧美一区二区三区不卡视频 | 天天宗合网 | 五月亭亭免费高清在线 | 日韩免费毛片全部不收费 | 在线播放一区二区精品产 | 黄色免费片 | 在线观看免费黄视频 | 91成人免费 | 在线免费视频你懂的 | 欧美色视频日本片免费高清 | 国产传媒在线观看视频免费观看 | 一级毛片在线播放 | 亚洲免费视频一区二区三区 | 久久99综合 | 四虎在线免费播放 | 男人都懂得网址 | 在线观看你懂的网站 | 美女网站色免费 |