• 正文
    • 一、多i.MXRT系統(tǒng)啟動(dòng)的傳統(tǒng)設(shè)計(jì)
    • 二、一種共享Flash啟動(dòng)的創(chuàng)新方法
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

一種多MCU分時(shí)復(fù)用Flash啟動(dòng)的創(chuàng)新方法(上)

05/30 10:45
388
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是多個(gè)i.MXRT共享一顆Flash啟動(dòng)的方法。

有些特殊的客戶應(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í)間成本),于是你就開始想辦法減少 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)題

至此,多個(gè)i.MXRT共享一顆Flash啟動(dòng)的方法痞子衡便介紹完畢了,掌聲在哪里~~~

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

碩士畢業(yè)于蘇州大學(xué)電子信息學(xué)院,目前就職于恩智浦(NXP)半導(dǎo)體MCU系統(tǒng)部門,擔(dān)任嵌入式系統(tǒng)應(yīng)用工程師。痞子衡會(huì)定期分享嵌入式相關(guān)文章