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

痞子衡嵌入式:串行NOR Flash的Continuous read模式下軟復(fù)位后i.MXRT無(wú)法啟動(dòng)問(wèn)題解決方案之SW Reset...

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

評(píng)論