色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

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

痞子衡嵌入式 ? 來(lái)源:痞子衡嵌入式 ? 2024-05-01 09:19 ? 次閱讀

去年痞子衡寫過(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 汽車電子客戶,他們使用了 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è)汽車電子客戶選用了來(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
b6cd042c-fff1-11ee-a297-92fbcf53809c.png

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

b6e0fdb0-fff1-11ee-a297-92fbcf53809c.png

程序下載完成之后,將芯片 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)了。

b6e997c2-fff1-11ee-a297-92fbcf53809c.png

二、支持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-IMXRT1050oardsevkbimxrt1050sdmmc_examplesmmccard_freertos,痞子衡其實(shí)就想要一個(gè)最簡(jiǎn)單的裸機(jī)版本的 eMMC 讀寫測(cè)試。

為了不重復(fù)造輪子,痞子衡就在 SDK_2_15_000_MIMXRT1170-EVKBoardsevkbmimxrt1170ootloader_examplesflashloader 基礎(chǔ)上做了刪減,僅保留 eMMC 讀寫以及程序跳轉(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)   // 用戶程序體大小
b6f68518-fff1-11ee-a297-92fbcf53809c.png

需要提醒的是,這個(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ì)完成了。

b7042a06-fff1-11ee-a297-92fbcf53809c.png

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


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

    關(guān)注

    16

    文章

    1681

    瀏覽量

    136118
  • Vcc
    Vcc
    +關(guān)注

    關(guān)注

    2

    文章

    305

    瀏覽量

    35961
  • emmc
    +關(guān)注

    關(guān)注

    7

    文章

    203

    瀏覽量

    52721
  • 裸機(jī)
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    6372

原文標(biāo)題:eMMC兩級(jí)啟動(dòng)設(shè)計(jì),從此再也不用擔(dān)心啟動(dòng)時(shí)間了

文章出處:【微信號(hào):pzh_mcu,微信公眾號(hào):痞子衡嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    恩智浦i.MXRT1xxx系列MCU的Serial NAND啟動(dòng)

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是恩智浦i.MXRT1xxx系列MCU的Serial NAND啟動(dòng)
    發(fā)表于 08-21 09:20 ?337次閱讀
    恩智浦<b class='flag-5'>i.MXRT1xxx</b><b class='flag-5'>系列</b>MCU的Serial <b class='flag-5'>NAND</b><b class='flag-5'>啟動(dòng)</b>

    i.MXRTxxx系列ROM中靈活的串行NOR Flash啟動(dòng)硬復(fù)位引腳選擇

    篇非常詳細(xì)的文章 《深入i.MXRT1050系列ROM中串行NOR Flash啟動(dòng)初始化流程》,這篇文章主要針對(duì) i.MXRT1xxx 四位數(shù)系列
    發(fā)表于 12-21 06:34

    如何解決i.MXRT1xxx系列啟動(dòng)應(yīng)用程序發(fā)生異常跑飛問(wèn)題?

    i.MXRT1xxx系列啟動(dòng)應(yīng)用程序如何解決異常跑飛問(wèn)題?
    發(fā)表于 12-23 07:41

    i.MXRT1xxx Boot的Serial Downloader模式相關(guān)資料分享

    (sdphost, mfgtool) 里痞子衡為大家介紹了i.MXRT1xxx Boot的Serial Downloader模式,這種模式主要是用來(lái)引導(dǎo)啟動(dòng)Flashloader,那么Flashlo...
    發(fā)表于 01-26 08:12

    系統(tǒng)時(shí)鐘配置不當(dāng)會(huì)導(dǎo)致i.MXRT1xxx系列下OTFAD加密啟動(dòng)失敗的解決辦法

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家分享的是系統(tǒng)時(shí)鐘配置不當(dāng)會(huì)導(dǎo)致i.MXRT1xxx系列下OTFAD加密啟動(dòng)失敗問(wèn)題。  我們知道,i.MXRT1xxx家族早
    發(fā)表于 02-08 06:09

    i.MXRT1xxx上的普通GPIO與高速GPIO的差異是什么?

    i.MXRT1xxx上的普通GPIO與高速GPIO的差異是什么?
    發(fā)表于 02-08 06:54

    i.MXRT1xxx系列里暗藏的Product ID寄存器介紹

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是i.MXRT1xxx系列里暗藏的Product ID寄存器。  MCU 廠商定義一個(gè)產(chǎn)品系列時(shí),通常是會(huì)預(yù)先規(guī)劃產(chǎn)
    發(fā)表于 02-11 06:24

    介紹的是i.MX RT1xxx系列MCU的Parallel NOR啟動(dòng)

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT1xxx系列MCU的Parallel NOR啟動(dòng)。  上一篇講
    發(fā)表于 02-22 06:31

    介紹i.MX RT1xxx系列MCU的Raw NAND啟動(dòng)

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT1xxx系列MCU的Raw NAND啟動(dòng)。  前面鋪
    發(fā)表于 02-22 07:20

    i.MXRT系列的ROM API設(shè)計(jì)

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是 i.MXRTxxx 系列 ROM API 設(shè)計(jì)細(xì)節(jié)。 痞子衡之前寫過(guò)篇文章 《利用 i.MXRT1xxx
    的頭像 發(fā)表于 10-30 10:52 ?597次閱讀

    痞子衡嵌入式:系統(tǒng)時(shí)鐘配置不當(dāng)會(huì)導(dǎo)致i.MXRT1xxx系列下OTFAD加密啟動(dòng)失敗

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

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

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT1xxx系列MCU的Parallel NOR啟動(dòng)。  上一篇講
    發(fā)表于 12-28 19:19 ?8次下載
    痞子衡嵌入式:恩智浦<b class='flag-5'>i</b>.MX RT<b class='flag-5'>1xxx</b><b class='flag-5'>系列</b>MCU<b class='flag-5'>啟動(dòng)</b>那些事(9)- 從Parallel NOR<b class='flag-5'>啟動(dòng)</b>

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

      大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT1xxx系列MCU的Raw NAND啟動(dòng)。  前面鋪
    發(fā)表于 12-28 19:19 ?10次下載
    痞子衡嵌入式:恩智浦<b class='flag-5'>i</b>.MX RT<b class='flag-5'>1xxx</b><b class='flag-5'>系列</b>MCU<b class='flag-5'>啟動(dòng)</b>那些事(8)- 從Raw <b class='flag-5'>NAND</b><b class='flag-5'>啟動(dòng)</b>

    利用i.MXRT1xxx系列ROM集成的DCD功能可輕松配置指定外設(shè)

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是利用i.MXRT1xxx系列ROM集成的DCD功能可輕松配置指定外設(shè)。
    的頭像 發(fā)表于 04-21 09:40 ?765次閱讀

    Serial NAND i.MX RT1xxx啟動(dòng)

    很多關(guān)于? i.MXRT1xxx?Serial NAND 啟動(dòng)的 咨詢 問(wèn)題,這個(gè)啟動(dòng)設(shè)備突然火熱起來(lái)了~ 借此機(jī)會(huì),今天跟大家介紹一下 S
    的頭像 發(fā)表于 08-17 08:50 ?658次閱讀
    Serial <b class='flag-5'>NAND</b> <b class='flag-5'>i</b>.MX RT<b class='flag-5'>1xxx</b><b class='flag-5'>啟動(dòng)</b>
    主站蜘蛛池模板: 亚洲色视在线观看视频| 欧美四虎精品二区免费| 在线天天看片视频免费观看| 久久亚洲精品2017| 最近中文字幕完整版免费高清 | 爽爽影院线观看免费| 国产精品悠悠久久人妻精品| 亚洲第一免费播放区| 久久a在线视频观看| 97午夜理论片影院在线播放| 青柠在线观看免费全集| 高h肉辣文黄蓉| 亚洲精品久久久久AV无码| 久久精品免费观看久久| 99久久99久久精品免费看子| 日本护士在线观看| 国产午夜精AV在线麻豆| 伊人久久大香线蕉综合电影| 男生J桶进女人P又色又爽又黄| 成人无码在线视频区| 午夜伦伦电影理论片费看| 九九99热久久999精品| 91av成年影院在线播放| 日韩欧美中文字幕一区| 国产午夜久久影院| 中文字幕无线观看不卡网站| 秋霞午夜理论理论福利无码| 国产免国产免费| 中文无码第3页不卡av| 日本精品久久久久中文字幕| 国产亚洲精品线观看不卡| 中文无码乱人伦中文视频播放| 妻中蜜在线播放| 国产深夜福利视频在线| 在线亚洲专区中文字幕| 日本久久久免费高清| 国产原创中文视频| 97人妻在线公开视频在线观看| 少妇系列之白嫩人妻| 久久精品亚洲热综合一本| 扒开女生尿口|