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

痞子衡嵌入式:在i.MXRT1xxx系列上用NAND型啟動(dòng)設(shè)備時(shí)可用兩級(jí)設(shè)計(jì)縮短啟動(dòng)時(shí)間

這篇具有很好參考價(jià)值的文章主要介紹了痞子衡嵌入式:在i.MXRT1xxx系列上用NAND型啟動(dòng)設(shè)備時(shí)可用兩級(jí)設(shè)計(jì)縮短啟動(dòng)時(shí)間。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


  大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是在i.MXRT1xxx系列上用NAND型啟動(dòng)設(shè)備時(shí)可用兩級(jí)設(shè)計(jì)縮短啟動(dòng)時(shí)間

  去年痞子衡寫(xiě)過(guò)一篇騷操作文章 《借助i.MXRT10xx系列INIT_VTOR功能可以縮短程序熱重啟時(shí)間》,這對(duì)于 NAND 型啟動(dòng)設(shè)備上程序熱重啟時(shí)間的縮短非常有幫助。我們知道隨著項(xiàng)目進(jìn)程的推進(jìn),代碼功能逐漸完善,程序體積也會(huì)變得越來(lái)越大,相應(yīng)地啟動(dòng)時(shí)間也會(huì)增大(每次復(fù)位 BootROM 都會(huì)搬移一次程序,搬移時(shí)間和程序長(zhǎng)度成正比),痞子衡已經(jīng)為大家解決了程序熱重啟時(shí)間問(wèn)題,但是程序上電啟動(dòng)(冷啟動(dòng))時(shí)間仍然過(guò)長(zhǎng)怎么辦?

  最近痞子衡在支持一個(gè) RT1170 汽車(chē)電子客戶,他們使用了 eMMC 作為啟動(dòng)設(shè)備,他們就對(duì)程序啟動(dòng)時(shí)間比較擔(dān)心。鑒于此,痞子衡決定給他們做一個(gè)示例,這個(gè)方法其實(shí)痞子衡在 《測(cè)量RT1170 Raw NAND啟動(dòng)時(shí)間》 一文 2.2 小節(jié)里簡(jiǎn)單提及過(guò),就是小 L2Boot + 大 App 兩級(jí)啟動(dòng)設(shè)計(jì)(L2Boot盡量小,App可以很大,L2Boot起來(lái)之后去做一些用戶啟動(dòng)任務(wù),然后由L2Boot再去慢慢加載App)。那會(huì)痞子衡只是放個(gè)嘴炮,這次咱們就動(dòng)個(gè)真格:

  • Note:本文以 eMMC 啟動(dòng)設(shè)備為例,但思想方法同樣適用 Raw/Serial NAND, SD 等啟動(dòng)設(shè)備。

一、RT1170從eMMC啟動(dòng)

  RT1xxx 系列包含兩個(gè) uSDHC 模塊,其中 uSDHC1 主要支持 1/4-bit 模式,而 uSDHC2 可以支持 1/4/8-bit 模式,因此大部分客戶都會(huì)將 8-bit eMMC 掛在 uSDHC2 上。這個(gè)汽車(chē)電子客戶選用了來(lái)自江波龍的兼容 eMMC5.1 標(biāo)準(zhǔn)的 8GB 容量芯片 FEMDME008G-A8A39,硬件設(shè)計(jì)上內(nèi)存介質(zhì)供電 VCC 是 3.3V,主機(jī)接口供電 VCCQ 是 1.8V(高速):

VCCQ = 1.8V,低功耗模式,可支持 HS200/HS400
VCCQ = 3.3V,高功耗模式,可支持 52MHz CLK SDR/DDR

  要從 eMMC 啟動(dòng),首先需要準(zhǔn)備一個(gè) Non-XIP 程序,具體可參考 《RT上Non-App制作限制》。有了程序,然后將芯片 Boot Mode 設(shè)置為 2'b01 串行下載模式,再使用痞子衡 MCUBootUtility 工具做一鍵下載即可,軟件配置如下:

  程序下載完成之后,將芯片 Boot Mode 設(shè)置為 2'b10,此外 BOOT_CFG[1/5/7/8/9] 均設(shè)為1,即從 uSDHC2 8-bit 1.8V High-Speed 模式啟動(dòng),斷電復(fù)位,你應(yīng)該能看到程序從 eMMC 中被啟動(dòng)了。

二、支持eMMC讀取的L2Boot設(shè)計(jì)

  確認(rèn)基本的 eMMC 啟動(dòng)過(guò)程沒(méi)問(wèn)題了,現(xiàn)在開(kāi)始設(shè)計(jì) L2Boot。其實(shí)這個(gè) L2Boot 也沒(méi)啥玄機(jī),本質(zhì)上也是一個(gè) Non-XIP 程序,只不過(guò)程序功能包含:用戶啟動(dòng)任務(wù)執(zhí)行、eMMC 數(shù)據(jù)讀取驅(qū)動(dòng)、用戶程序加載執(zhí)行。痞子衡這里的 L2Boot 設(shè)計(jì)主要涉及 eMMC 數(shù)據(jù)讀取以及用戶程序加載執(zhí)行。

  目前官方 SDK_2_15_000_MIMXRT1170-EVKB 里沒(méi)有單純的 eMMC 例程,但是其它 RT 型號(hào)倒是有例程 \SDK_2_15_000_EVKB-IMXRT1050\boards\evkbimxrt1050\sdmmc_examples\mmccard_freertos,痞子衡其實(shí)就想要一個(gè)最簡(jiǎn)單的裸機(jī)版本的 eMMC 讀寫(xiě)測(cè)試。

  為了不重復(fù)造輪子,痞子衡就在 \SDK_2_15_000_MIMXRT1170-EVKB\boards\evkbmimxrt1170\bootloader_examples\flashloader 基礎(chǔ)上做了刪減,僅保留 eMMC 讀寫(xiě)以及程序跳轉(zhuǎn)功能,代碼倉(cāng)庫(kù)如下:

https://github.com/JayHeng/RT-SDMMC/tree/dev_l2boot_emmc/boards/mcu/mmc_boot

  這個(gè) L2Boot 工程里最核心的函數(shù) bootloader_run() 如下,其中用戶程序拷貝過(guò)程目標(biāo)地址和長(zhǎng)度使用了 HARDCODE,這里其實(shí)是可以改進(jìn)的(可參考 RTxxx 系列啟動(dòng)設(shè)計(jì)在用戶程序中斷向量表保留區(qū)域放置 APP_EXEC_START 和 APP_LENGTH)。此外 APP_EMMC_START 設(shè) 0x80000,是因?yàn)檫@款 eMMC 芯片擦除單元(erase group)為 512KB,第一個(gè) group 我們放置了 L2Boot,用戶 App 可從第二個(gè) Group 開(kāi)始放。

#define APP_EMMC_START  (0x80000)  // 用戶程序數(shù)據(jù)在eMMC中起始位置
#define APP_EXEC_START  (0x2000)   // 用戶程序首地址(中斷向量表地址),這里是 ITCM 偏移 0x2000 處(偏移不強(qiáng)制)
#define APP_LENGTH      (0x6000)   // 用戶程序體大小

  需要提醒的是,這個(gè) L2Boot 務(wù)必要遵循 BootROM 對(duì)于 Non-XIP 程序加載的鏈接限制(空出前面位置給啟動(dòng)頭),因?yàn)樯想姾笃溆?BootROM 加載執(zhí)行。

三、L2Boot與App聯(lián)動(dòng)

  為了測(cè)試 L2Boot 功能是否正常,痞子衡在倉(cāng)庫(kù)里也放了一個(gè)示例用戶 App 工程(其實(shí)就是 SDK 里的 hello world 例程),這個(gè) App 由于是被 L2Boot 加載執(zhí)行,所以它也不存在 BootROM 關(guān)于 Non-XIP 程序的鏈接地址限制問(wèn)題了,完全看 L2Boot 的代碼設(shè)計(jì)要求。

https://github.com/JayHeng/RT-SDMMC/tree/dev_l2boot_emmc/boards/mcu/mmc_app

  現(xiàn)在我們用 MCUBootUtility 工具依次將痞子衡倉(cāng)庫(kù)里的 mmc_boot 程序(一鍵下載方式)和 mmc_app 程序(通用編程器下載方式,如下圖)下載進(jìn) eMMC 里。切換 Boot Mode 后斷電復(fù)位,如果你看到 mmc_app 正在執(zhí)行,恭喜你,兩級(jí)啟動(dòng)設(shè)計(jì)完成了。

  至此,在i.MXRT1xxx系列上用NAND型啟動(dòng)設(shè)備時(shí)可用兩級(jí)設(shè)計(jì)縮短啟動(dòng)時(shí)間痞子衡便介紹完畢了,掌聲在哪里~~~

歡迎訂閱

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

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

到了這里,關(guān)于痞子衡嵌入式:在i.MXRT1xxx系列上用NAND型啟動(dòng)設(shè)備時(shí)可用兩級(jí)設(shè)計(jì)縮短啟動(dòng)時(shí)間的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(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)文章

  • 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU啟動(dòng)那些事(12)- 從SD/eMMC啟動(dòng)

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是 恩智浦i.MXRT1xxx系列MCU的SD/eMMC卡啟動(dòng) 。 最近在恩智浦官方社區(qū)上支持了一個(gè)關(guān)于 i.MXRT 從 SD 卡啟動(dòng)的案例,這讓痞子衡想起了一年前寫(xiě)過(guò)的一篇《i.MXRT600從SD/eMMC啟動(dòng)》,那一篇重點(diǎn)介紹了基于 eMMC 設(shè)備

    2024年02月02日
    瀏覽(26)
  • 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU啟動(dòng)那些事(10.A)- FlexSPI NAND啟動(dòng)時(shí)間(RT1170)

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是 恩智浦i.MX RT1170 FlexSPI NAND啟動(dòng)時(shí)間 。 本篇是 i.MXRT1170 啟動(dòng)時(shí)間評(píng)測(cè)第四彈,前三篇分別給大家評(píng)測(cè)了 Raw NAND 啟動(dòng)時(shí)間(基于 MIMXRT1170-EVK_Rev.B)、Serial NOR 啟動(dòng)時(shí)間(基于 MIMXRT1170-EVB_Rev.A2)、1bit SPI NO

    2024年02月15日
    瀏覽(61)
  • 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下載算法(J-Link工具篇)

    痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.3)- 串行NOR Flash下載算法(J-Link工具篇)

    https://www.cnblogs.com/henjay724/p/13770137.html 大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是 J-Link工具下i.MXRT的串行NOR Flash下載算法設(shè)計(jì) 。 在i.MXRT硬件那些事系列之《在串行NOR Flash XIP調(diào)試原理》一文中,痞子衡簡(jiǎn)單提了一下串行NOR Flash下載算法的概念,并

    2024年02月09日
    瀏覽(26)
  • 痞子衡嵌入式:MCUBootUtility v5.0發(fā)布,初步支持i.MXRT1180

    -- 痞子衡維護(hù)的NXP-MCUBootUtility工具距離上一個(gè)大版本(v4.0.0)發(fā)布過(guò)去4個(gè)多月了,期間痞子衡也做過(guò)兩個(gè)小版本更新,但不足以單獨(dú)介紹。這一次痞子衡為大家?guī)?lái)了全新大版本v5.0.0,這次更新主要是想和大家特別聊聊恩智浦新一代 i.MXRT 旗艦 RT1180。 如果你經(jīng)常登錄恩智浦官網(wǎng)

    2024年02月05日
    瀏覽(23)
  • 痞子衡嵌入式:簡(jiǎn)析i.MXRT1170 MECC64功能特點(diǎn)及其保護(hù)片內(nèi)OCRAM1,2之道

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是 i.MXRT1170 MECC64功能特點(diǎn)及其保護(hù)片內(nèi)OCRAM1,2之道 。 ECC是 “Error Correcting Code” 的簡(jiǎn)寫(xiě),ECC 能夠?qū)崿F(xiàn)錯(cuò)誤檢查和糾正,含有 ECC 功能的內(nèi)存一般稱(chēng)為 ECC 內(nèi)存,使用了 ECC 內(nèi)存的系統(tǒng)在穩(wěn)定性和可靠性上得到

    2024年02月04日
    瀏覽(25)
  • 痞子衡嵌入式:原來(lái)i.MXRT1170內(nèi)部RAM的ECC初始化工作可全部由ROM完成

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是 i.MXRT1170內(nèi)部RAM的ECC初始化工作可全部由ROM完成 。 痞子衡之前寫(xiě)了三篇文章 《M7 FlexRAM ECC》、《M4 L-MEM ECC》、《MECC64》 分別介紹了 i.MXRT1170 片上 2MB RAM 的不同 ECC 控制器用法,尤其是第三篇文章最后介紹

    2024年02月04日
    瀏覽(17)
  • 痞子衡嵌入式:借助i.MXRT10xx系列INIT_VTOR功能可以縮短程序熱重啟時(shí)間

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是 借助i.MXRT10xx系列INIT_VTOR功能可以縮短程序熱重啟時(shí)間 。 最近痞子衡寫(xiě)了篇文章 《i.MXRT從Serial NAND啟動(dòng)時(shí)間測(cè)量》,這篇文章詳細(xì)測(cè)試了不同長(zhǎng)度的 Non-XIP 程序在不同 NAND 訪問(wèn)速度下由 BootROM 加載啟動(dòng)所

    2024年02月14日
    瀏覽(25)
  • 痞子衡嵌入式:使能i.MXRT1050,1060 Hab簽名或加密啟動(dòng)時(shí)App鏈接在片內(nèi)SRAM的限制

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是 使能i.MXRT1050, 1060 Hab簽名或加密啟動(dòng)時(shí)App鏈接在片內(nèi)SRAM的限制 。 最近有客戶反饋,在 RT1060 上測(cè)試 Non-XIP 程序啟動(dòng),如果程序體部分鏈接進(jìn) 0x20280000 地址之后的片內(nèi) OCRAM 區(qū)域(這部分是由 FlexRAM 分配出

    2024年04月12日
    瀏覽(35)
  • 痞子衡嵌入式:在i.MXRT1170上快速點(diǎn)亮一款全新LCD屏的方法與步驟(MIPI DSI接口)

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是 在i.MXRT1170上快速點(diǎn)亮一款全新LCD屏的方法與步驟 。 我們知道 LCD 屏的接口有很多:DPI-RGB、MIPI DSI、DBI/MCU(I8080)、LVDS、SPI 等等,接口不同,對(duì)應(yīng)的軟件驅(qū)動(dòng)也不同。RT1170 片內(nèi)外設(shè)對(duì)以上接口都能很好

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

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

    2024年02月08日
    瀏覽(90)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包