痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU啟動那些事(12.A)- uSDHC eMMC啟動時間(RT1170)

来源:https://www.cnblogs.com/henjay724/p/18191574
-Advertisement-
Play Games

大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT1170 uSDHC eMMC啟動時間。 本篇是 i.MXRT1170 啟動時間評測第五彈,前四篇分別給大家評測了 Raw NAND 啟動時間(基於 MIMXRT1170-EVK_Rev.B)、Serial NOR ...



  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT1170 uSDHC eMMC啟動時間

  本篇是 i.MXRT1170 啟動時間評測第五彈,前四篇分別給大家評測了 Raw NAND 啟動時間(基於 MIMXRT1170-EVK_Rev.B)、Serial NOR 啟動時間(基於 MIMXRT1170-EVB_Rev.A2)、1bit SPI NOR 恢復啟動時間(基於 MIMXRT1170-EVK_Rev.C)、Serial NAND 啟動時間(基於 MIMXRT1170-EVKB_Rev.B)。

  關於 i.MXRT 系列從 SD/eMMC 啟動使能方法,痞子衡寫過兩篇文章,分別是 《RT600從eMMC啟動》《RT1050從SD啟動》,文章里的方法其實是通用整個 i.MXRT 系列的(僅一些細微差異)。最近痞子衡在支持一個 RT1170 客戶,他們使用了 eMMC 啟動,並且將板子寄給了痞子衡幫助調試問題,趁此機會,痞子衡就在客戶板卡上詳細測試一下 eMMC 啟動時間:

一、準備工作

1.1 知識儲備

  除了依賴的底層數據傳輸介面外設類型不同之外,SD/eMMC 啟動流程和 Serial NAND/Raw NAND 啟動流程幾乎是一致的,因為存儲介質角度而言兩者都是 NAND,這裡就不過多展開了,參考痞子衡前面測評文章 1.1 節。

  不過這裡需要特別註意的是,前面測評的啟動設備(串並行NOR/NAND)讀寫數據率性能接近於介面速率(當然 NAND 有額外 ECC 校驗時間),但是 SD/eMMC 因為涉及壞塊管理/磨損平衡處理等,設備內部處理會產生更多時間開銷,所以實際數據讀寫率跟數據介面速率之間存在一定差異,這個差異因廠商產品里的處理演算法而異,需要翻看設備晶元數據手冊。

  本次測試客戶板卡上用了一顆來自江波龍的相容 eMMC5.1 標準的 8GB 容量晶元 FEMDME008G-A8A39,在其數據手冊上介面最高速率是 400MBps(HS400模式),但是實際數據讀寫率分別是 290MBps、115MBps。

eMMC 5.1 specification compatibility
- Backward compatible to eMMC 4.41/4.5/5.0

Bus mode
- Data bus width: 1 bit (default), 4 bits, 8 bits
- Data transfer rate: up to 400 MB/s (HS 400)
- MMC I/F Clock frequency: 0~ 200 MHz

1.2 時間界定

  關於時間起點和終點,參考《FlexSPI NOR啟動時間》 里的1.2節,雖然此次測試用得是客戶板卡,但是時間起點我們只需要選好 POR_B 測量點即可。

1.3 製作應用程式

  關於應用程式製作,參考《Serial NAND啟動時間》 里的1.3節。其實 Non-XIP 程式製作一直有一個小限制,之前的測評文章里都沒有特別強調,前段時間痞子衡終於專門寫了篇文章 《Non-XIP App一般鏈接限制》,大家可以瞭解一下。

1.4 下載應用程式

  應用程式的下載需藉助痞子衡開發的 NXP-MCUBootUtility 工具。由於 8bit eMMC 僅 uSDHC2 支持,客戶一般都將 eMMC 掛在 uSDHC2 引腳上,工具下載配置 eMMC 的時候,主要保證 instance 正確即可,至於其他速度模式方面的選擇,僅跟程式下載速度有關,並不影響 eMMC 啟動時間。

  對 eMMC 啟動時間產生影響得主要是 RT1170 晶元 fuse 里的如下配置,其中紅框選項是根據硬體情況必設的,籃圈選項是用戶可按自己要求選擇的(這裡也是下一節測試啟動時間的影響因數)。紫框里決定了 BootROM 運行時的內核主頻,CM7 做主核時預設是 400MHz,可高配到 700MHz,這裡我們不改 BootROM 預設內核頻率配置。

1.5 示波器抓取信號

  一切準備就緒,可以用示波器抓 eMMC 啟動時間了。這次痞子衡偷了個懶,就測量兩路信號,一個通道監測主晶元 POR 信號,另一個通道監測 GPIO 信號(App 里會拉低這個 GPIO)。與以往不同的是,這次 GPIO 選得是復用 BOOT_CFG 功能的 pin,這個 pin 加了外部強上拉,下一節測試結果小節里會有額外有趣發現。

二、開始測試

  在公佈結果之前,痞子衡先帶大家分析一下示波器抓取的啟動時間波形,方便大家理解後續表格裡的各項組成。POR 信號電壓上升時間比較緩慢,其供電來自於 VDD_1V8,我們時間起點暫取其標準有效值 70% - 1.2V 處。

  此外我們可以看到 GPIO 在 POR 拉高之前早就被拉高,說明 GPIO 上電早於 POR,這樣的硬體設計是符合 i.MXRT 上電採樣時序規範的,痞子衡有一篇文章 《RT離線無法啟動,請先查看SRC_SBMRx寄存器》 就和這點有關。

2.1 不同App長度測試

  首先做的是不同 App 類型及長度相關的測試,App 分為鏈接在 ITCM 和 SDRAM 兩種(後者需要使能 BootROM DCD 初始化)。此外由於 SDRAM 空間大,因此測試多種 App 長度。所有的測試均在同一種 Boot Config 配置下,即痞子衡 《NAND型啟動設備時可用兩級設計縮短啟動時間》 一文里的配置,這也是該客戶使用的啟動配置。

  從測試結果來看,eMMC 啟動時間在 1MB 以內 App 情況下相差無幾,跟 App 長度不成明顯正比關係。即使是 4MB 以內,也是看不出明顯關係,但是以 4MB 為單位來看,倒是有一定正比關係。

App長度 拷貝App目標區域 Boot Config配置 測量啟動時間
CFG2[2:1]-Bus Width CFG1[5]-SDMMC Speed CFG1[0]-Fast Boot
24KB ITCM
396MHz@64bit
2'b01 - 8bit DDR 1'b1 - High 1'b0 - Regular ~39.5ms
240KB ~41.5ms
24KB SDRAM
166MHz@32bit
~41.1ms
240KB ~46.7ms
1MB ~53.1ms
2MB ~63.3ms
4MB ~87.4ms
8MB ~133.3ms
16MB ~225.8ms

2.2 不同速度模式測試

  因為 4MB 在 SDRAM 執行 App 有一定代表性,痞子衡就以這個為基礎測試了不同的 Boot Config 配置組合,在 BOOT_CFG1[0] 為 Fast Boot 情況下普遍無法啟動(可能需要更多展開配置)。在 BOOT_CFG1[0] 為 Regular Boot 情況下,High Speed 比 Normal Speed 快近一倍,8-Bit DDR 比 8-Bit SDR 也快近一倍。

App長度 拷貝App目標區域 Boot Config配置 測量啟動時間
CFG2[2:1]-Bus Width CFG1[5]-SDMMC Speed CFG1[0]-Fast Boot
4MB SDRAM
166MHz@32bit
2'b01 - 8bit SDR 1'b0 - Normal 1'b0 - Regular ~219ms
1'b1 - Fast TBD
1'b1 - High 1'b0 - Regular ~130.6ms
1'b1 - Fast 無法啟動,DAP不可連接
2'b11 - 8bit DDR 1'b0 - Normal 1'b0 - Regular 無法啟動,DAP可連接
1'b1 - Fast TBD
1'b1 - High 1'b0 - Regular ~87.4ms
1'b1 - Fast 無法啟動,DAP不可連接

  至此,恩智浦i.MX RT1170 uSDHC eMMC啟動時間痞子衡便介紹完畢了,掌聲在哪裡~~~

歡迎訂閱

文章會同時發佈到我的 博客園主頁CSDN主頁知乎主頁微信公眾號 平臺上。

微信搜索"痞子衡嵌入式"或者掃描下麵二維碼,就可以在手機上第一時間看了哦。

  最後歡迎關註痞子衡個人微信公眾號【痞子衡嵌入式】,一個專註嵌入式技術的公眾號,跟著痞子衡一起玩轉嵌入式。

痞子衡嵌入式-微信二維碼 痞子衡嵌入式-微信收款二維碼 痞子衡嵌入式-支付寶收款二維碼

  衡傑(痞子衡),目前就職於某全球頂級半導體原廠MCU系統部門,擔任高級嵌入式系統應用工程師。

  專欄內所有文章的轉載請註明出處:http://www.cnblogs.com/henjay724/

  與痞子衡進一步交流或咨詢業務合作請發郵件至 [email protected]

  可以關註痞子衡的Github主頁 https://github.com/JayHeng,有很多好玩的嵌入式項目。

  關於專欄文章有任何疑問請直接在博客下麵留言,痞子衡會及時回覆免費(劃重點)答疑。

  痞子衡郵箱已被私信擠爆,技術問題不推薦私信,堅持私信請先掃碼付款(5元起步)再發。



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 具體的軟硬體實現點擊 http://mcu-ai.com/ MCU-AI技術網頁_MCU-AI 打鼾是一種普遍的癥狀,嚴重影響睡眠呼吸障礙患者(單純打鼾者)、阻塞性睡眠呼吸暫停(OSA)患者及其床伴的生活質量。研究表明,打鼾可用於OSA的篩查和診斷。因此,從夜間睡眠呼吸音頻中準確檢測打鼾聲一直是最重 ...
  • Linux 是一種自由和開放源代碼的操作系統,它的使用在全球範圍內非常廣泛。在 Linux 中,進程是操作系統中最重要的組成部分之一,它代表了正在運行的程式。瞭解如何查看正在運行的進程是非常重要的,因為它可以幫助你瞭解系統的運行狀態並對其進行管理。今天飛飛將和你分享如何在 Linux 中查看正在運行... ...
  • Linux 可用 pid 上限是多少?如何提升上限?為何提升上限可以實時生效?Linux 底層如何實現 pid 快速分配與歸還?這種實現為何只需要極少的記憶體開銷?本文通過閱讀 Linux 內核源碼,一一為你揭秘 ...
  • 大家好,我是 Java陳序員。 俗話說,上班不摸魚,不如當頭驢。上班不摸魚是沒有靈魂的! 但是,上班摸魚需要有一定的技巧,需要與老闆鬥智鬥勇,需要時時刻刻註意查崗。 今天,給大家安利一個摸魚APP,幫助你更好的摸魚! 關註微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典 ...
  • @目錄前言第一步:查看Docker Root目錄第二步:查到容器的長id(container id)第三步:停止容器第四步:編輯修改環境變數env第五步:重載服務的配置文件第六步:重啟docker總結 前言 請各大網友尊重本人原創知識分享,謹記本人博客:南國以南i、 提示:以下是本篇文章正文內容,下 ...
  • 目錄題目題目分析思路解析知識點涉及代碼展示優化思考問題一:觀察界面切換效果,可明顯觀察到界面切換時有明顯的刷新效果,有點影響使用效果問題二:圖片的按鍵位置不能相近或者重合,否則有誤觸導致執行了別的功能問題三:當快速來回點擊觸摸屏兩個位置時,會出現點擊位置坐標讀取與實際觸摸坐標不一致的情況 題目 設計 ...
  • /** * @date 2024/05/14 * CopyRight (c) 2023-2024 [email protected] All Right Reseverd */ #include <stdio.h> #include <stdlib.h> #include <sys/types. ...
  • KylinV10SP2實現ARM和x86架構系統PXE部署(S3) 本文介紹在esxi(虛擬化)中Centos7.9操作系統上部署PXE服務端,集成麒麟系統安裝源,TFTP服務,DHCP服務,HTTP服務,能夠向裸機發送PXE引導程式、Linux內核、啟動菜單等數據,以及提供安裝文件。 系統引導模式 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...