国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU啟動那些事(12)- 從SD/eMMC啟動

這篇具有很好參考價值的文章主要介紹了痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU啟動那些事(12)- 從SD/eMMC啟動。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是恩智浦i.MXRT1xxx系列MCU的SD/eMMC卡啟動。

  最近在恩智浦官方社區(qū)上支持了一個關于 i.MXRT 從 SD 卡啟動的案例,這讓痞子衡想起了一年前寫過的一篇《i.MXRT600從SD/eMMC啟動》,那一篇重點介紹了基于 eMMC 設備制作程序、下載程序、啟動程序的方法。雖然 SD 和 eMMC 在啟動流程上差別不大,但是細節(jié)上還是有一些不同的。借此機會,今天痞子衡再認真捋一下 SD 卡上制作、下載、啟動程序的方法:

  • Note:文中貼圖、代碼主要以 i.MXRT1050 為例,其余 i.MXRT1xxx 系列原理類似。

一、支持的SD/eMMC

  i.MXRT 四位數(shù)和 i.MXRT 三位數(shù)用于訪問 SD/MMC 卡的外設是同一個即 uSDHC,外設本身能支持到 SD3.0。但是芯片 BootROM 里并不一定完全按 uSDHC 全功能來做實現(xiàn),i.MXRT1050 BootROM 主要實現(xiàn)了以下類型的 SD 卡啟動支持:

? SDv2.0 or less
? eSDv2.10 rev-0.9, with or without FAST_BOOT
? SDXCv3.0

  作為對比,i.MXRT600 BootROM 對于 SD 卡啟動支持與 i.MXRT1050 則稍有不同:

? SD Version 3.0 or earlier version
? SD: 1-bit/4-bit; SDR12, SDR25, SDR50 and SDR104.

  全系列 MIMXRT10xx-EVK 上均配置了 MicroSD 卡槽,均連接在了第一個 uSDHC 端口上,所以我們測試 SD 啟動還是非常方便的。

二、SD/eMMC硬件連接

  除了 i.MXRT1010/1015 不包含 uSDHC 外設之外,其余 i.MXRT1xxx 內部都有 2 個 uSDHC 模塊(注:uSDHC2 可能在一些小封裝上沒有引出),i.MXRT1050 BootROM 支持如下 pinmux 來連接 SD/eMMC 卡去啟動:

  如下是 IMXRT1050-EVKB_Rev.A 板上 SD 卡槽連接設計,這個卡槽除了用來測試 SD 卡讀寫啟動之外,也可以通過連接 MicroSD 轉 eMMC 適配器去測試啟動 eMMC(需工作在 1/4bit bus width mode):

三、SD/eMMC加載啟動過程

  我們知道 SD/eMMC 設備中僅能放置 Non-XIP Application(鏈接到內部 SRAM 或者 外部 RAM 空間),其啟動加載流程跟 《從 Serial(1-bit SPI) NOR/EEPROM恢復啟動》 加載流程差不多(參考文章第 3 小節(jié))。

  對于 SD 卡設備,起始偏移一般要存放系統(tǒng) main boot record (MBR),因此需要讓開,BootROM 會從固定偏移 0x400 地址處讀取 IVT 啟動頭,有了 IVT 后面就能找到 Application 去加載啟動了(在這里 RT 四位數(shù)和 RT 三位數(shù)是不一樣的)。

四、下載Application進SD/eMMC

  現(xiàn)在假定你已經制作好一個 Bootable image 并且使用 blhost 工具與 Flashloader 建立了基本通信,正要開始將 Bootable image 下載進 SD 設備。此時我們只需要提供簡化的 4byte 配置數(shù)據(jù)就可以完成 SD 設備的配置,下面是一種 Application 下載更新示例:

// 在 SRAM 里臨時存儲 SD 配置數(shù)據(jù)
blhost -u -- fill-memory 0x20202000 0x4 0xD0000001 // 1bit, Normal Speed,uSDHC1

// 使用 SD 配置數(shù)據(jù)去配置 uSDHC 接口
blhost -u -- configure-memory 0x120 0x20202000

  上述 fill-memory 命令中 0xD0000001 參數(shù)即是簡化的 4byte 配置數(shù)據(jù),這個配置數(shù)據(jù)組織詳見下表:

  上表 4byte 數(shù)據(jù)提供的配置信息主要是 SD 連接以及屬性配置。configure-memory 命令執(zhí)行成功之后,底下只需要將 Bootable image 從 SD 偏移 0x400 地址處開始下載即可,具體步驟如下:

// 擦除 SD 并將 image 下載進 SD
blhost -u -- flash-erase-region 0x400 0x20000 0x120
blhost -u -- write-memory 0x400 bt_image.bin 0x120

  當然以上所有繁雜的命令行操作都可以使用 MCUBootUtility 工具(v3.5及以上)來一鍵完成:

五、進入SD/eMMC啟動模式

  Application 已經被成功下載進 SD 卡之后,此時我們便可以開始設置芯片從 SD 啟動。

  先確定 BOOT_MODE[1:0]=2'b10,即芯片處于 Internal Boot 模式,再來選擇 Boot Device,Boot Device 由 BOOT_CFG1[7:4] 這四個 pin 的輸入狀態(tài)決定,其中 SD 啟動模式為 4'b01xx。

六、配置eFuse啟動SD/eMMC

  設置好芯片啟動模式是從 SD 啟動之后,我們還需要最后關注一下與 SD/eMMC 相關的具體特性配置,主要集中在芯片內部 eFuse 0x470 - 0x450 區(qū)域里,默認全 0 值適用 3.3V SD 卡工作在 1bit Normal Speed 模式,有需要的話切換到 4bit SDR104 更快速度模式也是可以的。

七、幾個注意事項

  1. RT 四位數(shù)與 RT 三位數(shù)在 uSDHC 編號上不同,RT 四位數(shù)是 uSDHC1-2, 而 RT 三位數(shù)則是 uSDHC0-1,這反映在第四節(jié) option.instance 設置里。
  2. eMMC 協(xié)議是向下兼容 SD 協(xié)議的,因此如果使用一塊 MicroSD 轉 eMMC 小卡插進官方 EVK 板的 SD 卡槽做測試,那么啟動模式不管是 SD 1/4bit 或者 eMMC 4bit 模式均是能正常啟動 eMMC 程序的。
  3. 在 MIMXRT1170-EVKB Rev.B 板卡上,需要設置成 4bit 模式(BOOT_CFG2[1]=1)才能正常啟動 SD 卡里程序。

  上述所有步驟全部完成之后,復位芯片你就應該能看到你放在 SD 里的 Application 已經正常地啟動了。

  至此,恩智浦i.MXRT1xxx系列MCU的SD/eMMC卡啟動痞子衡便介紹完畢了,掌聲在哪里~~~

歡迎訂閱

文章會同時發(fā)布到我的 博客園主頁、CSDN主頁、知乎主頁、微信公眾號 平臺上。

微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。文章來源地址http://www.zghlxwxcb.cn/news/detail-432239.html

到了這里,關于痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU啟動那些事(12)- 從SD/eMMC啟動的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 痞子衡嵌入式:使用恩智浦GUI Guider快速創(chuàng)建全新LCD屏示例工程的步驟

    大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是 使用恩智浦GUI Guider快速創(chuàng)建全新LCD屏示例工程的步驟 。 在痞子衡舊文 《在i.MXRT1170上快速點亮一款全新LCD屏的方法與步驟》 里,痞子衡介紹了在官方 SDK 裸機驅動 elcdif 示例工程基礎上做修改以支持一

    2024年03月13日
    瀏覽(24)
  • 《痞子衡嵌入式半月刊》 第 81 期

    這里分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農歷年分二十四節(jié)氣,希望在每個交節(jié)之日準時發(fā)布一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 80 期》

    2024年02月08日
    瀏覽(90)
  • 《痞子衡嵌入式半月刊》 第 89 期

    這里分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農歷年分二十四節(jié)氣,希望在每個交節(jié)之日準時發(fā)布一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 88 期》

    2024年02月02日
    瀏覽(61)
  • 《痞子衡嵌入式半月刊》 第 93 期

    這里分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農歷年分二十四節(jié)氣,希望在每個交節(jié)之日準時發(fā)布一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 92 期》

    2024年03月09日
    瀏覽(24)
  • 《痞子衡嵌入式半月刊》 第 87 期

    這里分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農歷年分二十四節(jié)氣,希望在每個交節(jié)之日準時發(fā)布一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 86 期》

    2024年02月05日
    瀏覽(65)
  • 《痞子衡嵌入式半月刊》 第 84 期

    這里分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農歷年分二十四節(jié)氣,希望在每個交節(jié)之日準時發(fā)布一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 83 期》

    2024年02月05日
    瀏覽(57)
  • 《痞子衡嵌入式半月刊》 第 92 期

    這里分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農歷年分二十四節(jié)氣,希望在每個交節(jié)之日準時發(fā)布一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 91 期》

    2024年02月20日
    瀏覽(56)
  • 《痞子衡嵌入式半月刊》 第 90 期

    這里分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農歷年分二十四節(jié)氣,希望在每個交節(jié)之日準時發(fā)布一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 89 期》

    2024年02月19日
    瀏覽(26)
  • 《痞子衡嵌入式半月刊》 第 96 期

    這里分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農歷年分二十四節(jié)氣,希望在每個交節(jié)之日準時發(fā)布一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 95 期》

    2024年03月24日
    瀏覽(29)
  • 《痞子衡嵌入式半月刊》 第 97 期

    這里分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農歷年分二十四節(jié)氣,希望在每個交節(jié)之日準時發(fā)布一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 96 期》

    2024年04月10日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包