痞子衡嵌入式:聊聊i.MXRT1xxx上第三級啓動保障 - SDMMC manufacture模式


  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是i.MXRT1xxx上第三級啓動保障 - SDMMC manufacture模式

  如果你在 i.MXRT1xxx 板卡上嘗試過從 SD/eMMC 卡啓動,你會發現一個奇怪的現象:如果把 SD/eMMC 卡還插着(並且裏面保留正常的 App 程序),明明 BOOT_MODE[1:0] 設置得是從串行 NOR Flash 啓動,但是在 Flash 中沒有可啓動 App 情況下,芯片沒有像往常那樣轉入串行下載模式,而是正常啓動了,並且啓動得是 SD/eMMC 裏的程序,這是怎麼回事?今天痞子衡就跟大家介紹下導致這個現象背後的神祕力量 - SDMMC manufacture mode:

  • Note:SDMMC manufacture 模式僅在 i.MXRT 四位數上被支持。

一、什麼是SDMMC manufacture模式?

  我們知道 i.MXRT1xxx 系列支持得一級啓動設備有很多:串行NOR/NAND、並行NOR/NAND、SD/eMMC,當這些一級啓動設備中的 App 未能正常啓動時,爲了保證系統仍能運行正常,其會自動進入備份啓動方案(默認沒開啓,需要主動燒 eFuse 開啓),即痞子衡舊文介紹過的 《從Serial(1-bit SPI) EEPROM/NOR恢復啓動》

  如果這個備份啓動方案仍然失敗了怎麼辦?那就需要進入今天的主角,第三級也是最後一級啓動方案 - SDMMC manufacture 方式啓動(默認開啓,可以燒 eFuse 關閉。對於 RT1050 系列,配置在 eFuse 0x470[3] - Disable SDMMC Manufacture mode),簡單說就是 i.MXRT 會最後一次嘗試從 SD/eMMC 中讀取 App 去啓動。需要注意的是這個 SDMMC manufacture 啓動方式和作爲 《一級啓動設備 SD/eMMC 方式》 有如下區別:

  • 一級啓動設備 SD/eMMC 可以有很多用戶配置(由 BT_CFG 引腳或者 eFuse 決定),但是 SDMMC manufacture 啓動與用戶配置完全無關,其固定從 uSDHC1 口以 1bit bus width,3.3V 模式去讀取啓動 App。

二、什麼情況下進SDMMC manufacture模式?

  在 i.MXRT 芯片參考手冊 System Boot 章節可以找到如下流程圖,圖中介紹了兩種進 SDMMC manufacture 模式的方法。

  第一種方法就是在 BOOT_MODE[1:0]=2'b10 (或者 BOOT_MODE[1:0]=2'b00 且 BT_FUSE_SEL=1'b1)時,主啓動設備以及備份啓動設備(假設已使能)均失敗的情況下自動進入,這種方法屬於被動式進入,當然這也是該模式的主要用意。

  第二種方法就是在 BOOT_MODE[1:0]=2'b00 且 BT_FUSE_SEL=1'b0 時,主動進入 SDMMC manufacture 模式,這有點將該模式升級成一級啓動設備地位的感覺。

  最後提一下,i.MXRT 上的 SDMMC manufacture 模式特性完全繼承自 i.MX 系列,我們知道 MPU 世界裏使用 SD 卡場景非常多,因此使能這個功能很自然,在 i.MXRT 上如果應用裏也有 SD 卡相關設計,那麼不妨也關注下這個特性,多一重保障。

  至此,i.MXRT1xxx上第三級啓動保障 - SDMMC manufacture模式痞子衡便介紹完畢了,掌聲在哪裏~~~

歡迎訂閱

文章會同時發佈到我的 博客園主頁CSDN主頁知乎主頁微信公衆號 平臺上。

微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章