大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是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 四位數上被支持。
一、回顧i.MXRT啟動設備
i.MXRT 系列內部均沒有非易失性存儲器,所以需要配置一個外部存儲器存放啟動代碼,這個外部存儲器我們也叫做啟動設備。i.MXRT 支持的啟動設備類型非常多,并且因為啟動設備受板級環境影響可能導致啟動代碼讀取異常,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模式痞子衡便介紹完畢了,掌聲在哪里~~~
審核編輯 :李倩
-
芯片
+關注
關注
453文章
50387瀏覽量
421783 -
串行
+關注
關注
0文章
237瀏覽量
33792 -
板卡
+關注
關注
3文章
106瀏覽量
16790
原文標題:真的打滿了!試問誰家MCU能有三重啟動保障?
文章出處:【微信號:pzh_mcu,微信公眾號:痞子衡嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論