1117129_zh-CN

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

1117129_zh-CN

1117129_zh-CN

RT1050 上不同内存的启动时间<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

我参与的一个小项目是了解 RT1050 从不同内存类型启动的性能。我使用 SDK 中的 LED_blinky 代码作为基线,并在 EVKB 板上运行了一些测试。下面描述了我收集的数据以及更详细的测试程序。

测试程序

启动时间将被定义为从处理器首次接通电源到执行 main() 函数第一行代码的时间。

使用示波器(Tektronix TDS 2014)测量 POR_B* 信号上升沿到以下两点之间的时间:

  1. FlexSPI_CS 已断言(ROM 首次读取 FlexSPI)**
  2. 应用程序代码中的 GPIO 切换(信号开始执行代码)。***

*POR_B 信号可通过接头 J26-1 进行示波

**FlexSPI_CS 信号可通过电路板上的一个小上拉电阻 R356 获得。一根小电线被焊接在这个电阻器旁边,并在示波器上进行探测。

***所使用的 GPIO 引脚与连接到 USER_LED(低电平有效)的引脚相同。该引脚可通过接头 J22-5 进行定位。

TP 2、3、4、5用于将示波器探头接地。这一切都是在 EVKB 评估板上完成的。

以下是本次测试中值得注意的几点:

  1. 本报告主要强调 POR_B 信号上升沿和第一行代码执行之间的时间。然而,从首次向电路板供电到 POR_B 系统启动之间需要一段时间。这是电力电子的问题,并且可能根据用户应用和设计而变化。正因为如此,本报告不会过多强调这一点。
  2. 应用程序的第一行实际代码实际上是配置处理器的几个引脚。仅当执行这些引脚后,GPIO 才会切换至低电平并在示波器上记录时间。然而,这些配置代码行执行得非常快,以至于测试时忽略了时间。

时钟配置

在这三种情况下,可引导映像均已刷入 RT1050。之后,在 MCUXpresso 中,调试器配置为将“仅附加”设置为 true。然后启动调试会话,在处理器完成代码执行后,暂停并根据 RT1050 参考手册第 18 章 CCM 框图读取寄存器值。

启动配置:

核心时钟 (MHz) *

FlexSPI时钟(MHz)

SEMC时钟(MHz)

FlexSPI

130

99

SDRAM

396

130

99

SRAM

396

130

99

*还通过将 clko1 配置为时钟速度除以 8 的输出来验证核心时钟速度。使用示波器测量该频率并验证其为 396 MHz。

结果

pastedImage_2.png

芯片选择引脚的时间表示从 RT1050 处理器发生第一次闪存读取的时刻。到GPIO输出的时间代表启动时间。

正如预期的那样,XiP Hyperflash 的启动速度比其他内存更快。SRAM 和 SDRAM 内存在执行之前必须复制到可执行内存,这将花费更多时间,因此启动速度更慢。

在下面的部分中,我们将更详细地解释这些测试是如何运行的,以及为什么 Hyperflash XiP 预计是最快的。

Hyperflash XiP启动

以下是我们预期 Hyperflash XiP 启动过程的步骤概述:

  1. 上电复位(J26-1)
  2. 开始访问闪存(FlexSPI_SS0)
  3. 在闪存中就地执行(XiP)
  4. 第一行代码执行(USER_LED)

在 MCUXpresso 中,地图文件显示以下内容:

pastedImage_3.png

示波器图像如下:

 pastedImage_4.png

SDRAM 启动

处理器将从 ROM 启动,并被告知将应用程序映像从串行 NOR 闪存复制到 SDRAM(串行 NOR 闪存使用 Hyperflash 通信)。RT flashloader 工具将让我将应用程序加载到闪存中,并将其配置为通过内存复制到 SDRAM 并执行。

 

由于必须进行整个复制操作,因此复制到 SDRAM 的速度预计会比从 Hyperflash 执行的速度慢。


SDRAM启动过程如下:

  1. 上电复位(J26-1)
  2. 开始访问闪存(FlexSPI_SS0)
  3. 复制代码到SDRAM
  4. 在 SDRAM (FlexSPI_SS0) 中就地执行
  5. 执行第一行代码(USER_LED)

在 MCUXpresso 中,地图文件显示以下内容:

 pastedImage_5.png

为了运行此测试,我遵循了以下说明: https://community.nxp.com/docs/DOC-340655

pastedImage_6.png

SRAM启动

对于 SRAM,预计其工艺与 SDRAM 类似。处理器将首先从内部 ROM 启动,然后进入 Hyperflash。然后,它会将所有内容从 Hyperflash 复制到内部 SRAM DTC 内存,然后从那里执行。

SRAM 启动过程如下:

  1. 上电复位(J26-1)
  2. 开始访问闪存(FlexSPI_SS0)
  3. 将代码复制到SRAM
  4. 在 SRAM (FlexSPI_SS0) 中就地执行
  5. 执行第一行代码(USER_LED)

 

在 MCUXpresso 中,地图文件显示以下内容:

 pastedImage_7.png

pastedImage_8.png

本文档由以下讨论生成: javascript:;

i.MXRT 105x
标记 (1)
无评分
版本历史
最后更新:
‎01-06-2026 02:24 AM
更新人: