來源:痞子衡嵌入式
有些客戶應用會采用多顆 i.MXRT 芯片設計一主多從的硬件架構(目的不一,或仿多核 MCU 系統、或拓展 GPIO 數量),因為 i.MXRT 片內無非易失性存儲器,這時候為整個系統配置合適的啟動設備保證每個 i.MXRT 都能加載程序正常啟動是頭等大事。
因為 i.MXRT 支持的啟動設備類型眾多,此處我們暫討論連接在 FlexSPI 外設上的 NOR Flash 作為啟動設備。熟悉 i.MXRT 的 朋友都知道,其片內 ROM 功能強大,這種情況下系統可采用的 Flash 連接啟動方式并不單一,今天痞子衡就和大家討論下這個話題并且給大家介紹一種創新方法:
Note:本篇是上篇,主要介紹理論方法,下篇為具體實踐。
一、多i.MXRT系統啟動的傳統設計
1.1 每個i.MXRT獨享一個Flash
首先介紹得是大家直覺里第一反應的方案,那就是每個 i.MXRT 都有專屬 Flash,互不干擾,這種方案沒啥好說的,就是簡單粗暴,但是它也有明顯的優缺點:
- 優點:
1. 系統啟動快,多 i.MXRT 同時啟動
2. 每個 i.MXRT 均可以 XiP 啟動
3. 每個 i.MXRT 單獨更新專屬 Flash(可同時進行,OTA 加速且程序版本管理簡單)
- 缺點:
1. 硬件設計稍復雜,PCB 面積大,Flash 數量多導致成本高
2. 程序燒寫流程增多(需燒寫多顆 Flash),量產不便
1.2 僅主i.MXRT連接一個Flash
當主從系統里從 i.MXRT 數量多到一定程度,上述方法里的缺點就被無限放大了,Flash 數量扎眼,量產時間過長,這時候項目經理一定會跳出來讓你降成本(Flash成本,產線時間成本),于是你就開始想辦法減少 Flash 數量。
此時我們可以借助 i.MXRT 的 ROM ISP 功能,由主 i.MXRT 先啟動運行 Flash 里的 bootloader ,然后由 bootloader 來讀取 Flash 里的應用程序并通過 ISP 接口直接加載到從 i.MXRT 的內部 SRAM 里運行(多個從 i.MXRT 可按序串行下載也可并行下載,從 bootloader 設計角度來說一般是按序串行下載),當然這種方式同樣有明顯的優缺點:
- 優點:
1. 簡化了硬件設計,PCB 面積減小,僅需一顆 Flash
2. 簡化了程序燒寫流程(僅需燒寫一顆 Flash),方便量產
- 中性:
1. 僅有主 i.MXRT 可以 XiP 啟動,從 i.MXRT 都只能 Non-XiP 啟動
2. 主 i.MXRT 統一負責 OTA 升級任務(loading 較大)
- 缺點:
1. 需要額外設計符合 ROM ISP 協議的 bootloader 讓主 i.MXRT 執行去加載從 i.MXRT 程序
2. 整個系統啟動時間變長(如果從 i.MXRT 程序由 bootloader 按序串行下載,UART 接口速度慢)
3. 如果從 i.MXRT 程序不同,Flash 里會分區域存儲不同程序,帶來復雜的 OTA 版本管理問題
二、共享Flash啟動的創新方法
上述改進方法達到了降硬件成本的目的,但是也帶來了一個無法避免的系統整體啟動時間過長的問題(bootloader 實現 ROM ISP 功能如果選擇 USB 接口,需要額外加 Hub,還是存在硬件成本問題;如果選擇 UART 接口,速度較低,程序加載時間無法忍受)。
有沒有更好的方法?痞子衡既然這么問了,那就一定是有!我們可以創新地把一顆 Flash 同時連到多個 i.MXRT 上,主 i.MXRT 能夠控制所有從 i.MXRT 的 POR_B 電平。系統上電,主 i.MXRT 先 Non-XIP 啟動,然后主 i.MXRT 逐一釋放從 i.MXRT 的 POR_B 讓它們分時占用 Flash 去 Non-XIP 啟動,現在我們再來分析下它的優缺點:
- 優點:
1. 簡化了硬件設計,PCB 面積減小,僅需一顆 Flash
2. 簡化了程序燒寫流程(僅需燒寫一顆 Flash),方便量產
- 中性:
1. bootloader 可有可無,即使有也非常簡單,無需承擔程序加載任務
2. 整個系統啟動時間可控(分時復用 Flash 啟動,FlexSPI 接口加載速度較高)
3. 系統里僅有一個 i.MXRT(可主可從)可以 XiP 啟動,其余 i.MXRT 都只能 Non-XiP 啟動
4. 每個 i.MXRT 均可承擔 OTA 升級任務,具有一定靈活性
- 缺點:
1. 如果從 i.MXRT 程序不同,Flash 里會分區域存儲不同程序,帶來復雜的 OTA 版本管理問題
-
mcu
+關注
關注
146文章
17894瀏覽量
362010 -
FlaSh
+關注
關注
10文章
1672瀏覽量
151209 -
存儲器
+關注
關注
38文章
7641瀏覽量
166676 -
芯片設計
+關注
關注
15文章
1074瀏覽量
55516
原文標題:多i.MXRT主從系統中共享一顆Flash啟動的方法全講解(上)
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
為i.MXRT設計更新Segger J-Link Flash下載算法文件
i.MXRT系列FlexSPI驅動Flash頁編程執行時間
i.MXRT上使能NOR Flash的Continuous read模式在軟復位后無法正常啟動怎么解決?
IAR開發環境下i.MXRT的串行NOR Flash下載算法設計
i.MXRT上使能NOR Flash的Continuous read模式在軟復位后無法正常啟動問題的解決
介紹i.MXRT啟動頭FDCB里的lookupTable
J-Link工具下i.MXRT的串行NOR Flash下載算法設計
Flash不支持SFDP,如何下載適用i.MXRT
痞子衡嵌入式:MCUXpresso IDE下使用J-Link下載算法在Flash調試注意事項(i.MXRT500為例)...

痞子衡嵌入式:串行NOR Flash的Continuous read模式下軟復位后i.MXRT無法啟動問題解決方案之SW Reset...

i.MXRT上提升代碼執行性能的十八般武藝
深入i.MXRT1050系列ROM中串行NOR Flash啟動初始化流程

評論