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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

遵循SD Host controller Specification協議的MMC設備驅動開發討論

冬至子 ? 來源:嵌入式系統研發 ? 作者:ESDev ? 2023-06-09 14:43 ? 次閱讀

1.概述

本文主要講述了U-boot的MMC DM框架驅動的移植方法。DM是Driver Model的簡稱,是U-boot的基本驅動框架。常見的MMC設備包括SD卡、eMMC存儲器等。本文討論遵循SD Host controller Specification協議的MMC設備驅動開發。

示例U-boot版本:2022.10。硬件平臺:ARM SOC。

2.原理

在U-boot中,對遵循SD Host controller Specification 協議的MMC設備有著完備的底層驅動支持。因此,移植某個特定MMC外設驅動,具體工作為調用U-boot自有的MMC底層標準驅動,實現對MMC外設的訪問和操作。

MMC驅動的工作原理 :首先對設備樹文件xx.dts進行解析,按照先bind后probe的順序加載MMC驅動,分別通過相應的bind函數和probe函數完成。

U-boot啟動后,在讀取MMC設備節點的compatible字段后,找到與之匹配的U_BOOT_DRIVER,然后執行bind函數對驅動進行綁定,最后通過probe函數對驅動進行激活,解析設備樹的節點屬性,對驅動進行配置,從而使驅動具備工作條件,供上層應用程序調用。

U-boot的命令子系統包含了眾多測試命令子集,其中mmc命令集可用來對MMC驅動進行功能測試,對MMC設備進行信息查詢和訪問操作。

3.移植方法

3.1 主要工作

U-boot移植MMC DM框架驅動的主要工作包括:

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

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

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

(4)向./arch/arm/dts/xx.dts中添加MMC設備節點。

3.2 驅動源碼設計

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

** MMC驅動包括2個核心函數,即atmel_sdhci_bind和atmel_sdhci_probe函數** 。

atmel_sdhci_bind函數用于驅動的綁定。調用了sdhci_bind函數,位于./drivers/mmc/sdhci.c;而MMC作為一種塊設備,sdhci_bind函數進一步調用了mmc_bind函數,位于./drivers/mmc/mmc-uclass.c。

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

3.3 MMC設備樹節點

在設備樹添加MMC設備節點,節點設計方法可以參考./doc/device-tree-bindings/mmc下的文檔。

4.驗證方法

4.1編譯mmc測試工具

為編譯mmc測試工具,應配置U-boot,使能CONFIG_CMD_MMC。

圖片

4.2驅動加載結果查詢

從本節開始,將介紹mmc測試命令的使用方法及執行結果示例。

dm tree命令列出了DM框架驅動的加載結果。

下面xx_sdhci和mmc_blk前的Probed標志為[+],表示驅動已經加載成功了。

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設備信息查詢

下面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位置連續寫入2個block數據。

cli>mmc write 0x80000000 100 2

2 blocks written: OK

4.5讀操作

從SD卡的100# block位置向DDR的0x90000000地址連續讀入2個block數據。

cli>mmc read 0x90000000 100 2

2 blocks read: OK

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16402

    瀏覽量

    178590
  • 存儲器
    +關注

    關注

    38

    文章

    7514

    瀏覽量

    164004
  • MMC
    MMC
    +關注

    關注

    0

    文章

    77

    瀏覽量

    30503
  • SD卡
    +關注

    關注

    2

    文章

    566

    瀏覽量

    63973
  • u-boot
    +關注

    關注

    0

    文章

    121

    瀏覽量

    38241
收藏 人收藏

    評論

    相關推薦

    sdmmc卡規范協議

    sdmmc卡規范協議MultiMediaCard Architecture-MultiMediaCard Architecture-MultiMediaCard
    發表于 07-22 15:07

    Linux下SD驅動移植

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

    【WRTnode2R試用體驗】+SD卡的配置

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

    RT-Thread SDIO驅動框架分析之SD驅動

    層中,實現SD卡、SDIO卡、MMC卡的通用外設驅動邏輯,如卡的識別、卡的模塊切換、卡的讀寫操作等,這些都是通用的,遵循SD標準
    發表于 03-13 16:01

    rt-thread SDIO驅動框架分析(SD卡flash驅動\SD Nand flash驅動

    設備驅動框架層的具體接口對于SDIO外設亦是如此:在設備驅動框架層中,實現SD卡、SDIO卡、MMC
    發表于 04-04 16:26

    1394 Open Host Controller Inte

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

    IEEE 1394 火線協議標準

    1394 Open Host Controller Interface or IEEE 1394 火線協議標準 Specification Release 1.1 January 6,
    發表于 07-22 14:58 ?107次下載

    sd標準/MMC卡標準

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

    sd卡-mmc卡-CPU說明資料

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

    基于S3C2410的SD MMC驅動的實現

    設計了一個基于S3C2410 片內SDI 的SD/MMC驅動,該驅動支持MMC 卡、SD卡、
    發表于 01-06 15:41 ?53次下載

    mmc卡和sd卡的區別是什么

    mmc卡和sd卡已經是目前運用廣泛的兩種的內存卡。本文以mmc卡和sd卡為中心,主要介紹了它門兩者的結構應用,mmc卡和
    發表于 12-16 09:06 ?4.8w次閱讀

    基于S3C2410控制器實現SD/MMC驅動的設計

    MMC卡是基于NAND快閃記憶技術開發的存儲卡:SD卡是在MMC卡的基礎上開發研制的一款具有大容量、高性能、安全性好等特點的多功能存儲卡.存
    發表于 08-19 14:21 ?1788次閱讀
    基于S3C2410控制器實現<b class='flag-5'>SD</b>/<b class='flag-5'>MMC</b>卡<b class='flag-5'>驅動</b>的設計

    Linux MMC開發指南

    介紹 Linux 內核中 SD/MMC 子系統的接口及使用方法,為 SD/MMC 設備驅動
    的頭像 發表于 03-06 10:21 ?3276次閱讀
    Linux <b class='flag-5'>MMC</b><b class='flag-5'>開發</b>指南

    U-boot的MMC DM框架驅動的移植方法

    本文主要講述了U-boot的MMC DM框架驅動的移植方法。DM是Driver Model的簡稱,是U-boot的基本驅動框架。常見的MMC設備
    的頭像 發表于 04-14 10:22 ?3067次閱讀
    U-boot的<b class='flag-5'>MMC</b> DM框架<b class='flag-5'>驅動</b>的移植方法

    Xilinx FPGA NVMe控制器,NVMe Host Controller IP

    NVMe Host Controller IP可以連接高速存儲PCIe SSD,無需CPU和外部存儲器,自動加速處理所有的NVMe協議命令,具備獨立的數據寫入AXI4-Stream/FIFO接口和數
    的頭像 發表于 02-18 11:27 ?926次閱讀
    Xilinx FPGA NVMe控制器,NVMe <b class='flag-5'>Host</b> <b class='flag-5'>Controller</b> IP
    主站蜘蛛池模板: 亚洲欧美一区二区三区图片 | 亚洲欧美成人网| 欧美黄色精品| 中文字幕一区二区三区免费视频| 69日本xxⅹxxxxx18| 1024人成软件色www| 免费可以看黄的视频 s色| 国产成人精品系列在线观看| 伊人网站在线观看| 国产日韩精品一区二区三区 | 久久第一页| 亚洲国产七七久久桃花| 正在播放欧美| 欧美满足你的丝袜高跟ol| 一级片视频播放| 色网站免费看| 亚洲国产成人在人网站天堂| 欧美不卡视频| 亚洲四虎在线| 欧美三级手机在线| 国产三级跑| 午夜aaaaaaaaa视频在线| 就要干就要操| 中文字幕一区二区三区四区五区| 国产叼嘿网站免费观看不用充会员| 午夜性爽爽爽| 五月婷久久| 女人被狂躁视频网站免费| 国产青草| 免费在线观看的视频| 日本操穴| 57pao成人永久免费视频| 国产91色综合久久免费分享| 日本精品一卡二卡≡卡四卡| 美脚连裤袜老师正在播放| 成年网站在线在免费播放| 欧美午夜精品久久久久久黑人 | www.看片| avt天堂网| 一本到卡二卡三卡免费高| 欧美区在线播放|