在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

多個(gè)i.MXRT共享一顆Flash啟動(dòng)的方法與實(shí)踐(下)

恩智浦MCU加油站 ? 來源:痞子衡嵌入式 ? 2025-06-05 10:04 ? 次閱讀

來源:痞子衡嵌入式

在 《多個(gè)i.MXRT共享一顆Flash啟動(dòng)的方法與實(shí)踐(上)》 一文里痞子衡給大家從理論上介紹一種多 i.MXRT 共享 Flash 啟動(dòng)的方法,但是理論雖好,如果沒有經(jīng)過實(shí)踐驗(yàn)證切實(shí)可行,不過是紙上談兵,所以今天痞子衡就找了兩個(gè) i.MXRT 開發(fā)板來具體實(shí)操這種方法:

一、搭建硬件平臺(tái)

理論上任意兩塊 i.MXRT 開發(fā)板均可以用作硬件測(cè)試平臺(tái)(這里僅考慮一主一從,至于一主多從原理差不多),但是痞子衡手頭 MIMXRT1010-EVK_Rev.C 開發(fā)板較多,就選用它來做測(cè)試吧,痞子衡對(duì)硬件做了如下改動(dòng):

去除從板上 U13 - Flash

保留主板上 U13 - Flash,并且飛線連接到從板 U13(低速啟動(dòng)僅需 CS, SCLK, IO0, IO1)

主板主芯片GPIO_11 信號(hào)(R1870 靠主芯片端,非 D25 LED 端)連到從板主芯片 POR_B(SW3 的 Pin3/4)

e08de85a-41a7-11f0-b715-92fbcf53809c.png

二、軟件代碼設(shè)計(jì)

有了硬件平臺(tái),現(xiàn)在開始設(shè)計(jì)代碼。為了簡單起見,主從 i.MXRT 共用一份 App(可以在條件分支里做區(qū)分)。因?yàn)?Flash 是共享的,所以 App 必須是 Non-XIP 性質(zhì)。要讓芯片 BootROM 去支持 Non-XIP 啟動(dòng),得使用專用上位機(jī)工具(比如痞子衡的MCUBootUtility或者恩智浦官方 SPT )來下載程序鏡像文件,這樣稍微麻煩一點(diǎn)。為了避免下載程序的麻煩,我們可以簡單設(shè)計(jì)一個(gè)boot_loader 工程來拷貝和跳轉(zhuǎn) boot_app 程序。

代碼倉庫:

https://github.com/JayHeng/func-imxrt-flexspi-share-flash-boot-multiple-mcu

兩個(gè)工程路徑:

/boards/evkmimxrt1010/demo_apps/boot_loader

/boards/evkmimxrt1010/demo_apps/boot_app

2.1 boot_loader 工程設(shè)計(jì)

boot_loader 工程是一個(gè) XiP 工程,由芯片 BootROM 直接啟動(dòng)。我們可以直接基于 SDK 里的 hello_world 來修改(flexspi_nor target),先對(duì)它的啟動(dòng)頭 FCB 做如下修改(1-bit SPI 30MHz Normal Read Mode):

e0e83cba-41a7-11f0-b715-92fbcf53809c.png

boot_app 工程是一個(gè) Non-XiP 工程,也可以基于 SDK 里的 hello_world 來修改(debug target),它生成的 binary 直接導(dǎo)入到 boot_loader 工程里,具體方法可參見《i.MXRT雙核工程調(diào)試的三種方法(IAR篇)》 一文里的 2.3 通用方法:雙核工程有關(guān)聯(lián),主核加載從核小節(jié),這里不再贅述。

boot_loader 工程里有了 boot_app 數(shù)據(jù)以及鏈接地址,拷貝和跳轉(zhuǎn)函數(shù)設(shè)計(jì)就比較簡單了,都是通用代碼。最終調(diào)穩(wěn)定的 boot_loader 工程可以直接在 IDE 里下載到 Flash 里運(yùn)行(需調(diào)試器連接到主板 SWD 口)。

2.2 boot_app 工程設(shè)計(jì)

現(xiàn)在來到最核心的 boot_app 工程設(shè)計(jì),工程還是基于 hello_world,可以從串口接收簡單的字符指令(A,B...)來做不同測(cè)試,目前設(shè)計(jì)了六個(gè)測(cè)試指令:

字符指令 A(僅適用主 i.MXRT)- 將 GPIO_11 輸出電平由低變高控制 POR_B 信號(hào)以釋放從 i.MXRT

字符指令 B(僅適用主 i.MXRT)- 將 GPIO_11 輸出電平由高變低控制 POR_B 信號(hào)以復(fù)位保持從 i.MXRT

字符指令 C(適用主/從i.MXRT)- 初始化 Flash 相關(guān)引腳為 FlexSPI 功能

字符指令 D(適用主/從i.MXRT)- 恢復(fù) Flash 相關(guān)引腳為默認(rèn) GPIO 狀態(tài)

字符指令 E(適用主/從i.MXRT)- 以一線模式擦寫讀 U13 Flash

字符指令 F(僅適用從 i.MXRT)- 用定時(shí)器不斷翻轉(zhuǎn) GPIO_11 來驅(qū)動(dòng) D25 LED 閃爍

這里需要特別說一下指令 A 和 E,這里面涉及到主/從 i.MXRT 芯片 FlexSPI 引腳共同驅(qū)動(dòng)一個(gè) Flash 的沖突問題。當(dāng)主 i.MXRT 執(zhí)行 A 指令來釋放從 i.MXRT 時(shí),需要先執(zhí)行 D 指令(即調(diào)用如下函數(shù))將FlexSPI 引腳恢復(fù)到上電默認(rèn) GPIO 狀態(tài)(BootROM 啟動(dòng)時(shí)已將這些引腳配置成了 FlexSPI 功能),否則從 i.MXRT 可能無法正常從 Flash 啟動(dòng)。

voidbsp_deinit_flexspi_pins(void) 
{
    IOMUXC_SetPinMux(IOMUXC_GPIO_SD_06_GPIO2_IO06, 0U); 
    IOMUXC_SetPinMux(IOMUXC_GPIO_SD_07_GPIO2_IO07, 0U); 
    IOMUXC_SetPinMux(IOMUXC_GPIO_SD_09_GPIO2_IO09, 0U); 
    IOMUXC_SetPinMux(IOMUXC_GPIO_SD_10_GPIO2_IO10, 0U);
    IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_06_GPIO2_IO06, 0x10A0U);
    IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_07_GPIO2_IO07, 0x10A0U);
    IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_09_GPIO2_IO09, 0x10A0U);
    IOMUXC_SetPinConfig(IOMUXC_GPIO_SD_10_GPIO2_IO10, 0x10A0U);
}

C 指令和 E 指令顯然是結(jié)伴而行的,當(dāng)從 i.MXRT 執(zhí)行過 C,E 指令且仍處于激活狀態(tài)時(shí),如果主 i.MXRT 想正常執(zhí)行 C,E 指令,要么先執(zhí)行 B 指令直接將從 i.MXRT 復(fù)位保持住(FlexSPI 相關(guān)引腳配置也自動(dòng)復(fù)位了),要么讓從 i.MXRT 先執(zhí)行下 D 指令。

三、在板卡上測(cè)試

現(xiàn)在給板卡供電,將包含 boot_app 的 boot_loader 程序下載進(jìn) Flash,主板串口是 COM43,從板串口是 COM50,我們做一個(gè)快速測(cè)試,給主板直接發(fā)送 A 指令發(fā)現(xiàn)從板沒有啟動(dòng),但是執(zhí)行過 D 指令后再發(fā)送 A 指令,這時(shí)候從板就正常啟動(dòng)了。此外主/從板也都能對(duì) Flash 進(jìn)行正常擦寫,這證明我們的創(chuàng)新連接方法是切實(shí)可行的。

e0ff7a42-41a7-11f0-b715-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    459

    文章

    52199

    瀏覽量

    436284
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1668

    瀏覽量

    150996
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5531

    瀏覽量

    102369
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1275

    瀏覽量

    53592

原文標(biāo)題:多個(gè)i.MXRT共享一顆Flash啟動(dòng)的方法與實(shí)踐(下)

文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    多個(gè)i.MXRT共享一顆Flash啟動(dòng)方法實(shí)踐(上)

    有些客戶應(yīng)用會(huì)采用多顆 i.MXRT 芯片設(shè)計(jì)主多從的硬件架構(gòu)(目的不,或仿多核 MCU 系統(tǒng)、或拓展 GPIO 數(shù)量),因?yàn)?i.MXRT 片內(nèi)無非易失性存儲(chǔ)器,這時(shí)候?yàn)檎麄€(gè)系統(tǒng)
    的頭像 發(fā)表于 06-05 10:01 ?218次閱讀
    <b class='flag-5'>多個(gè)</b><b class='flag-5'>i.MXRT</b><b class='flag-5'>共享</b><b class='flag-5'>一顆</b><b class='flag-5'>Flash</b><b class='flag-5'>啟動(dòng)</b>的<b class='flag-5'>方法</b>與<b class='flag-5'>實(shí)踐</b>(上)

    FlashDummy Cycle設(shè)置方法的差異

    今天痞子衡給大家介紹的是同廠商不同系列Flash型號(hào)Dummy Cycle設(shè)置方法的差異。  上篇文章 《在
    發(fā)表于 12-13 06:29

    i.MXRT系列FlexSPI驅(qū)動(dòng)Flash頁編程執(zhí)行時(shí)間

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是i.MXRT系列FlexSPI驅(qū)動(dòng)Flash頁編程執(zhí)行時(shí)間。  痞子衡之前寫過篇文章 《串行NOR Flash的頁
    發(fā)表于 12-21 07:30

    i.MXRT上使能NOR Flash的Continuous read模式在軟復(fù)位后無法正常啟動(dòng)怎么解決?

    i.MXRT上使能NOR Flash的Continuous read模式在軟復(fù)位后無法正常啟動(dòng)怎么解決?
    發(fā)表于 01-19 07:19

    IAR開發(fā)環(huán)境i.MXRT的串行NOR Flash下載算法設(shè)計(jì)

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是IAR開發(fā)環(huán)境i.MXRT的串行NOR Flash下載算法設(shè)計(jì)。  在i.MXRT硬件那些事系列之《在串行NOR
    發(fā)表于 01-26 07:46

    i.MXRT上使能NOR Flash的Continuous read模式在軟復(fù)位后無法正常啟動(dòng)問題的解決

    《串行NOR Flash的Continuous read模式軟復(fù)位后i.MXRT無法啟動(dòng)問題解決方案之RESET#》,利用RESET#引腳復(fù)位功能是痞子衡找到的第
    發(fā)表于 01-26 06:52

    FlexSPI復(fù)位方式不當(dāng)會(huì)導(dǎo)致i.MXRT系列OTFAD加密啟動(dòng)失敗怎么解決?

    FlexSPI復(fù)位方式不當(dāng)會(huì)導(dǎo)致i.MXRT系列OTFAD加密啟動(dòng)失敗怎么解決?
    發(fā)表于 02-07 08:11

    介紹i.MXRT啟動(dòng)頭FDCB里的lookupTable

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是i.MXRT啟動(dòng)頭FDCB里的lookupTable。個(gè)MCU內(nèi)部通常有很多外設(shè)模塊,這些外設(shè)模塊是各MCU廠商做差異化產(chǎn)...
    發(fā)表于 02-17 07:47

    J-Link工具i.MXRT的串行NOR Flash下載算法設(shè)計(jì)

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是 J-Link 工具 i.MXRT 的串行 NOR Flash 下載算法設(shè)計(jì)。 、J-Link 各版本對(duì)
    的頭像 發(fā)表于 12-08 10:07 ?1313次閱讀

    Flash不支持SFDP,如何下載適用i.MXRT

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是導(dǎo)致串行 NOR Flashi.MXRT 無法正常下載 / 啟動(dòng)的常見因素之 SFDP。
    的頭像 發(fā)表于 10-30 10:30 ?1025次閱讀

    痞子衡嵌入式:MCUXpresso IDE使用J-Link下載算法在Flash調(diào)試注意事項(xiàng)(i.MXRT500為例)...

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是MCUXpresso IDE使用J-Link下載算法在Flash調(diào)試注意事項(xiàng)。  痞子衡前段時(shí)間寫過篇小文《為i.MXR
    發(fā)表于 10-29 10:36 ?0次下載
    痞子衡嵌入式:MCUXpresso IDE<b class='flag-5'>下</b>使用J-Link下載算法在<b class='flag-5'>Flash</b>調(diào)試注意事項(xiàng)(<b class='flag-5'>i.MXRT</b>500為例)...

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

    《串行NOR Flash的Continuous read模式軟復(fù)位后i.MXRT無法啟動(dòng)問題解決方案之RESET#》,利用RESET#引腳復(fù)位功能是痞子衡找到的第
    發(fā)表于 12-02 12:51 ?1次下載
    痞子衡嵌入式:串行NOR <b class='flag-5'>Flash</b>的Continuous read模式<b class='flag-5'>下</b>軟復(fù)位后<b class='flag-5'>i.MXRT</b>無法<b class='flag-5'>啟動(dòng)</b>問題解決方案之SW Reset...

    痞子衡嵌入式:FlexSPI復(fù)位方式不當(dāng)會(huì)導(dǎo)致i.MXRT系列OTFAD加密啟動(dòng)失敗

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是FlexSPI復(fù)位方式不當(dāng)會(huì)導(dǎo)致i.MXRT系列OTFAD加密啟動(dòng)失敗問題。  本篇是《系統(tǒng)時(shí)鐘配置不當(dāng)會(huì)導(dǎo)致
    發(fā)表于 12-04 17:36 ?9次下載
    痞子衡嵌入式:FlexSPI復(fù)位方式不當(dāng)會(huì)導(dǎo)致<b class='flag-5'>i.MXRT</b>系列<b class='flag-5'>下</b>OTFAD加密<b class='flag-5'>啟動(dòng)</b>失敗

    i.MXRT上提升代碼執(zhí)行性能的十八般武藝

    SBL 項(xiàng)目是支持全系列 i.MXRT 平臺(tái)的,為了具體化問題,我們就選取 i.MXRT1062 型號(hào)為例,官方配套 MIMXRT1060-EVK 板子上搭配了一顆四線串行 NOR Flash
    的頭像 發(fā)表于 05-23 09:31 ?1563次閱讀

    深入i.MXRT1050系列ROM中串行NOR Flash啟動(dòng)初始化流程

    我們知道外部串行NOR Flash是接到i.MXRT的FlexSPI外設(shè)引腳上,有時(shí)串行NOR Flash啟動(dòng)也叫FlexSPI NOR啟動(dòng)
    的頭像 發(fā)表于 06-02 17:43 ?1848次閱讀
    深入<b class='flag-5'>i.MXRT</b>1050系列ROM中串行NOR <b class='flag-5'>Flash</b><b class='flag-5'>啟動(dòng)</b>初始化流程
    主站蜘蛛池模板: 怡红院国产| 中文天堂在线观看 | 欧美成人精品一区二区 | 六月激情丁香 | 天堂电影在线观看免费入口 | 全免费一级毛片在线播放 | 四虎影院一区二区 | 禁漫羞羞a漫入口 | 中文字幕一区2区3区 | 亚洲久优优色优在线播放 | 日本黄色影片 | 怡红院亚洲怡红院首页 | 欧美人成一本免费观看视频 | 久久综合97色综合网 | 天堂中文资源在线观看 | 美女禁处| 午夜老司机永久免费看片 | 九色中文 | 国产视频每日更新 | 免费精品一区二区三区在线观看 | 国产精品久久久久久久久久影院 | 久操视频免费看 | xx日韩| 美脚连裤袜老师正在播放 | 天天摸日日添狠狠添婷婷 | 拍拍免费视频 | 亚洲高清免费观看 | 欧美天堂在线观看 | 日本a级三级三级三级久久 日本a级影院 | 天堂最新版 | 特级全黄一级毛片视频 | 免费观看一级特黄三大片视频 | 亚洲综合色丁香婷婷六月图片 | 理论片国产 | 理论毛片 | 男女刺激性视频大片 | 亚洲精品福利网站 | 激情综合站 | 天天靠天天擦天天摸 | bt天堂资源种子在线 | 久久国产精品99久久久久久老狼 |