国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU啟動(dòng)那些事(10)- 從Serial NAND啟動(dòng)

這篇具有很好參考價(jià)值的文章主要介紹了痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU啟動(dòng)那些事(10)- 從Serial NAND啟動(dòng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


  大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是恩智浦i.MXRT1xxx系列MCU的Serial NAND啟動(dòng)。

  最近越來越多的客戶在咨詢 i.MXRT1xxx 從 Serial NAND 啟動(dòng)的事情,讓這個(gè)本來比較冷門的啟動(dòng)設(shè)備突然火熱起來。據(jù)痞子衡的了解,其實(shí)客戶主要目的是在應(yīng)用里基于 Serial NAND 去做文件系統(tǒng)(看起來隨著技術(shù)的發(fā)展,就文件系統(tǒng)應(yīng)用或者多媒體數(shù)據(jù)存儲(chǔ)方面而言 Raw NAND 已經(jīng)不是絕對(duì)優(yōu)勢(shì)了),然后順便用它做應(yīng)用代碼啟動(dòng)。借此機(jī)會(huì),今天痞子衡就給大家介紹一下 Serial NAND 上制作、下載、啟動(dòng)程序的方法:

  • Note:文中貼圖、代碼主要以 i.MXRT1050 為例,其余 i.MXRT1xxx 系列原理類似。

一、支持的Serial NAND

  Serial NAND 廠商非常多,對(duì)應(yīng) Serial NAND 芯片型號(hào)也很多,如果你在選型時(shí)不確定到底該為 i.MXRT 選擇哪一款 Serial NAND 時(shí),可選用下面四款芯片,痞子衡均實(shí)測(cè)過:

Macronix MX35LF2G24AD       (120MHz, x4 bits, 2KB Page/128KB Block/2Gb Device,  8-bit/544byte ECC, 3.3V)
Winbond W25N01GV            (104MHz, x4 bits, 2KB Page/128KB Block/1Gb Device,  1-bit/528byte ECC, 3.3V)
GigaDevice GD5F1GQ5UEYIG    (133MHz, x4 bits, 2KB Page/128KB Block/1Gb Device,  4-bit/528byte ECC, 3.3V)
Micron MT29F1G01ABA         (133MHz, x4 bits, 2KB Page/128KB Block/1Gb Device,  8-bit/Sector  ECC, 3.3V)

  需要特別注意的是,與 《i.MXRT從Raw NAND啟動(dòng)》 里既可使用純軟件 ECC 也可利用 Flash 自帶硬件 ECC 特性不同的是,從 Serial NAND 啟動(dòng)必須依賴 Flash 自帶硬件 ECC。

二、Serial NAND硬件連接

  除了 i.MXRT1010/1024/1064 不支持 Serial NAND 啟動(dòng)之外,其余 i.MXRT1xxx 都可以支持。其中 i.MXRT10xx 系列只支持一組引腳連接組合,而 i.MXRT11xx 則支持多組引腳連接組合。i.MXRT1050 BootROM 支持如下 pinmux 來連接 Serial NAND 去啟動(dòng):

  如下是 IMXRT1050EVK12_Rev.A 板上四線 QSPI Flash 連接設(shè)計(jì),板載默認(rèn) U33 芯片是 Serial NOR Flash,我們可以換成同封裝 Serial NAND,痞子衡就將其換成了 MX35LF2G24AD 來做測(cè)試,當(dāng)然 FLASH_VCC 也相應(yīng)改成了 3.3V:

三、Serial NAND加載啟動(dòng)過程

  我們知道 Serial NAND 中僅能放置 Non-XIP Application(鏈接到內(nèi)部 SRAM 或者 外部 RAM 空間),其啟動(dòng)加載流程跟 《從 Serial(1-bit SPI) NOR/EEPROM恢復(fù)啟動(dòng)》 加載流程差不多(參考文章第 3 小節(jié))。

  i.MXRT BootROM 中對(duì)于 Serial NAND 啟動(dòng)流程處理和對(duì)于 Raw NAND 啟動(dòng)處理幾乎是一樣的,都是依賴 FCB 和 DBBT 這兩個(gè)數(shù)據(jù)結(jié)構(gòu)(當(dāng)然 Serial NAND 和 Raw NAND 里對(duì)于這兩個(gè)數(shù)據(jù)結(jié)構(gòu)具體成員定義有差異)。關(guān)于 FCB 和 DBBT 的使用,痞子衡在《i.MXRT從Raw NAND啟動(dòng)》一文中三、四小節(jié)講得很清楚,這里不再贅述。

  i.MXRT1050 參考手冊(cè) System Boot 章節(jié)里畫了上電啟動(dòng)時(shí) BootROM 代碼搜索 FCB 和 DBBT 的流程,能找到這兩個(gè)數(shù)據(jù),應(yīng)用程序就能夠被正常加載。這里需要特別注意,F(xiàn)CB 和 DBBT 是在配套 Flashloader 執(zhí)行過程中動(dòng)態(tài)生成的,因?yàn)樯婕?NAND Flash 里具體壞塊分布信息,所以無法在 PC 端直接制作 FCB 和 DBBT,這就意味著我們無法像 NOR Flash 那樣事先得到一個(gè)完整的含全部啟動(dòng)頭(FCB&DBBT&IVT&BD)的 NAND bootable image。

四、下載Application進(jìn)Serial NAND

  現(xiàn)在假定你已經(jīng)制作好一個(gè) Bootable image 并且使用 blhost 工具與 Flashloader 建立了基本通信,正要開始將 Bootable image 下載進(jìn) Serial NAND。此時(shí)我們只需要提供簡(jiǎn)化的 12 - 44byte 配置數(shù)據(jù)就可以完成 Serial NAND 的全部配置,下面是適用 MX35LF2G24AD 的 Application 下載更新示例:

// 在 SRAM 里臨時(shí)存儲(chǔ) Serial NAND 配置數(shù)據(jù)(FCB Opt)
blhost -u -- fill-memory 0x20202000 0x4 0xC2000103 // searchCount=2, searchStride = 64 pages, Address type: Block Address, Option Block size: 3 long words
blhost -u -- fill-memory 0x20202004 0x4 0x2020200C // nand opt address
blhost -u -- fill-memory 0x20202008 0x4 0x4004     // image0 從 Block 4 開始,長(zhǎng)度最大 4 個(gè) Block

// 在 SRAM 里臨時(shí)存儲(chǔ) Serial NAND 配置數(shù)據(jù)(NAND Opt)
blhost -u -- fill-memory 0x2020200C 0x4 0xC0020023 // Flash size: 2Gbit, 1 Plane, 64 Pages/Block, 2KB Page Size, Max Freq:60MHz

// 使用 Serial NAND 配置數(shù)據(jù)去配置 FlexSPI 接口以及寫入完整 FCB, DBBT 數(shù)據(jù)
blhost -u -- configure-memory 0x101 0x20202000

  上述 fill-memory 命令中 FCB Opt 配置數(shù)據(jù)組織詳見下表:

  上述 fill-memory 命令中 NAND Opt 配置數(shù)據(jù)組織詳見下表:

  上表 12 - 44byte 數(shù)據(jù)提供的配置信息主要是 FCB 和 NAND 屬性。configure-memory 命令執(zhí)行成功之后,底下只需要將 Bootable image 從 Serial NAND 對(duì)應(yīng) Block 地址處開始下載即可,具體步驟如下:

// 擦除 Serial NAND 并將 image 下載進(jìn) Serial NAND
blhost -u -- flash-erase-region 0x4 0x4 0x101     // 從第4個(gè)Block開始擦除,范圍為4個(gè)Block長(zhǎng)度
blhost -u -- write-memory 0x4 bt_image.bin 0x101  // 從第4個(gè)Block開始下載含 ivt, bd 的鏡像文件

  當(dāng)然以上所有繁雜的命令行操作都可以使用 MCUBootUtility 工具(v5.2.1及以上)來一鍵完成:

五、進(jìn)入Serial NAND啟動(dòng)模式

  Application 已經(jīng)被成功下載進(jìn) Serial NAND 卡之后,此時(shí)我們便可以開始設(shè)置芯片從 Serial NAND 啟動(dòng)。

  先確定 BOOT_MODE[1:0]=2'b10,即芯片處于 Internal Boot 模式,再來選擇 Boot Device,Boot Device 由 BOOT_CFG1[7:4] 這四個(gè) pin 的輸入狀態(tài)決定,其中 Serial NAND 啟動(dòng)模式為 4'b11xx。

六、配置eFuse啟動(dòng)Serial NAND

  設(shè)置好芯片啟動(dòng)模式是從 Serial NAND 啟動(dòng)之后,我們還需要最后關(guān)注一下與 Serial NAND 相關(guān)的具體特性配置,主要集中在芯片內(nèi)部 eFuse 0x6e0/0x450 區(qū)域里,根據(jù)前面配置,這里我們只需要設(shè)置 BOOT_SEARCH_COUNT bit 為 1,其余保持默認(rèn) 0 即可。

  這里單獨(dú)解釋下 COL_ADDRESS_WIDTH 默認(rèn) 0 即 12bits,看起來對(duì)應(yīng)了 4KB Page size,但是因?yàn)?ECC 特性,這樣設(shè)置下的低 2KB page 空間存真實(shí)數(shù)據(jù),高 2KB page 空間其實(shí)屬于所謂 Spare 空間,會(huì)被 Flash 自動(dòng)用來存放 ECC 校驗(yàn)碼,不過這個(gè) Spare 空間有效范圍 64byte-128byte 不等(對(duì)于 MX35LF2G24AD 則是 128)。

  上述所有步驟全部完成之后,復(fù)位芯片你就應(yīng)該能看到你放在 Serial NAND 里的 Application 已經(jīng)正常地啟動(dòng)了。

  至此,恩智浦i.MXRT1xxx系列MCU的Serial NAND啟動(dòng)痞子衡便介紹完畢了,掌聲在哪里~~~

歡迎訂閱

文章會(huì)同時(shí)發(fā)布到我的 博客園主頁、CSDN主頁、知乎主頁、微信公眾號(hào) 平臺(tái)上。

微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機(jī)上第一時(shí)間看了哦。文章來源地址http://www.zghlxwxcb.cn/news/detail-583649.html

到了這里,關(guān)于痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU啟動(dòng)那些事(10)- 從Serial NAND啟動(dòng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 痞子衡嵌入式:使用恩智浦GUI Guider快速創(chuàng)建全新LCD屏示例工程的步驟

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是 使用恩智浦GUI Guider快速創(chuàng)建全新LCD屏示例工程的步驟 。 在痞子衡舊文 《在i.MXRT1170上快速點(diǎn)亮一款全新LCD屏的方法與步驟》 里,痞子衡介紹了在官方 SDK 裸機(jī)驅(qū)動(dòng) elcdif 示例工程基礎(chǔ)上做修改以支持一

    2024年03月13日
    瀏覽(24)
  • 《痞子衡嵌入式半月刊》 第 81 期

    這里分享嵌入式領(lǐng)域有用有趣的項(xiàng)目/工具以及一些熱點(diǎn)新聞,農(nóng)歷年分二十四節(jié)氣,希望在每個(gè)交節(jié)之日準(zhǔn)時(shí)發(fā)布一期。 本期刊是開源項(xiàng)目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 80 期》

    2024年02月08日
    瀏覽(90)
  • 《痞子衡嵌入式半月刊》 第 89 期

    這里分享嵌入式領(lǐng)域有用有趣的項(xiàng)目/工具以及一些熱點(diǎn)新聞,農(nóng)歷年分二十四節(jié)氣,希望在每個(gè)交節(jié)之日準(zhǔn)時(shí)發(fā)布一期。 本期刊是開源項(xiàng)目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 88 期》

    2024年02月02日
    瀏覽(61)
  • 《痞子衡嵌入式半月刊》 第 93 期

    這里分享嵌入式領(lǐng)域有用有趣的項(xiàng)目/工具以及一些熱點(diǎn)新聞,農(nóng)歷年分二十四節(jié)氣,希望在每個(gè)交節(jié)之日準(zhǔn)時(shí)發(fā)布一期。 本期刊是開源項(xiàng)目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 92 期》

    2024年03月09日
    瀏覽(24)
  • 《痞子衡嵌入式半月刊》 第 87 期

    這里分享嵌入式領(lǐng)域有用有趣的項(xiàng)目/工具以及一些熱點(diǎn)新聞,農(nóng)歷年分二十四節(jié)氣,希望在每個(gè)交節(jié)之日準(zhǔn)時(shí)發(fā)布一期。 本期刊是開源項(xiàng)目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 86 期》

    2024年02月05日
    瀏覽(65)
  • 《痞子衡嵌入式半月刊》 第 84 期

    這里分享嵌入式領(lǐng)域有用有趣的項(xiàng)目/工具以及一些熱點(diǎn)新聞,農(nóng)歷年分二十四節(jié)氣,希望在每個(gè)交節(jié)之日準(zhǔn)時(shí)發(fā)布一期。 本期刊是開源項(xiàng)目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 83 期》

    2024年02月05日
    瀏覽(57)
  • 《痞子衡嵌入式半月刊》 第 92 期

    這里分享嵌入式領(lǐng)域有用有趣的項(xiàng)目/工具以及一些熱點(diǎn)新聞,農(nóng)歷年分二十四節(jié)氣,希望在每個(gè)交節(jié)之日準(zhǔn)時(shí)發(fā)布一期。 本期刊是開源項(xiàng)目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 91 期》

    2024年02月20日
    瀏覽(56)
  • 《痞子衡嵌入式半月刊》 第 90 期

    這里分享嵌入式領(lǐng)域有用有趣的項(xiàng)目/工具以及一些熱點(diǎn)新聞,農(nóng)歷年分二十四節(jié)氣,希望在每個(gè)交節(jié)之日準(zhǔn)時(shí)發(fā)布一期。 本期刊是開源項(xiàng)目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 89 期》

    2024年02月19日
    瀏覽(26)
  • 《痞子衡嵌入式半月刊》 第 96 期

    這里分享嵌入式領(lǐng)域有用有趣的項(xiàng)目/工具以及一些熱點(diǎn)新聞,農(nóng)歷年分二十四節(jié)氣,希望在每個(gè)交節(jié)之日準(zhǔn)時(shí)發(fā)布一期。 本期刊是開源項(xiàng)目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 95 期》

    2024年03月24日
    瀏覽(29)
  • 《痞子衡嵌入式半月刊》 第 97 期

    這里分享嵌入式領(lǐng)域有用有趣的項(xiàng)目/工具以及一些熱點(diǎn)新聞,農(nóng)歷年分二十四節(jié)氣,希望在每個(gè)交節(jié)之日準(zhǔn)時(shí)發(fā)布一期。 本期刊是開源項(xiàng)目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 :《痞子衡嵌入式半月刊: 第 96 期》

    2024年04月10日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包