This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM263P4:如何在 LP-AM263P 上配置和验证锁步模式

Guru**** 2960990 points

Other Parts Discussed in Thread: LP-AM263P, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1657722/am263p4-how-to-configure-and-verify-lockstep-mode-on-lp-am263p

器件型号: AM263P4
主题中讨论的其他器件: LP-AM263P、 SysConfig

尊敬的团队:

我正在使用 LP-AM263P 开发板、并想了解如何配置和使用锁步模式。

我的要求是在锁步模式下运行两个 R5F 内核对:

  • R5F0-0 和 R5F0-1 作为锁步对运行并运行同一应用。
  • R5F1-0 和 R5F1-1 作为另一个锁步对运行、同时运行不同的应用。

我想澄清以下几点:

  1. 如何在锁步模式下配置两个 R5F 内核对?
  2. 在两个锁步集群上同时加载和运行不同应用程序的建议程序是什么?
  3. 如何验证每个锁步对中的内核是否正确执行并产生相同的结果?
  4. 如果锁步对中的核心之间发生不匹配、如何检测它?
  5. 可以使用哪些故障状态寄存器、中断、错误信号或诊断机制来识别锁步错误?
  6. 是否有任何示例项目、参考文档或调试方法可用于验证 LP-AM263P 上的锁步功能?

请提供清晰的解释或分步指导。

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid=“543018“ url=“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1657722/am263p4-how-to-configure-and-verify-lockstep-mode-on-lp-am263p
    • 如何在锁步模式下配置两个 R5F 内核对?
    • 在两个锁步集群上同时加载和运行不同应用程序的建议程序是什么?
    • 如何验证每个锁步对中的内核是否正确执行并产生相同的结果?
    [/报价]

    您可以使用 SBL 配置 R5F 的锁定步骤配置

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1.在锁步模式下配置两个 R5F 内核对

    锁步模式通常在 引导时配置 、无法在运行时更改:

    • SysConfig (CCS/MCU+ SDK): 在工程 .syscfg 文件中、选择 R5F 集群配置并将  每个集群(集群 0 和集群 1)的操作模式设置为“锁步“。
    • 引导配置: 器件的 DEVSTAT/引导模式引脚或 ROM 引导配置确定集群是在锁步模式还是拆分(双核)模式下启动。 SysConfig 和引导加载程序会处理此问题。
    • 当锁步启用时、每个集群中的内核 1 成为影子内核 — 它执行与内核  0 相同的指令流、但其输出会进行比较、而不是从外部驱动。

    2.在两个锁步集群上加载并运行不同的应用程序

    每个锁步集群都作为  调试器和引导加载程序的单个逻辑内核显示:

    • 在 CCS 中: 启用锁步时、您将看到两个 R5F 目标(每个集群一个)。 将应用程序 A 单独加载到集群 0、将应用程序 B 单独加载到集群 1。
    • 通过 SBL(辅助引导加载程序): 配置多核映像.appimage() 以包含两个应用二进制文件—一个针对 R5FSS0、一个针对 R5FSS1。 SBL 独立加载和启动每个集群。
    • 这两个集群与独立的程序计数器、内存映射和中断配置同时运行。

    3.验证锁步执行是否正确

    锁步验证 完全在硬件 中处理、无需软件级结果比较:

    • 硬件比较器 每个时钟周期检查两个内核 的输出(总线事务,寄存器写入,控制信号)。
    • 如果输出匹配、执行将以透明方式进行。 从软件的角度来看、系统充当单核集群。
    • 没有软件 API 可“读取“影子内核的结果—比较是隐式且连续的。

    4.检测锁步不匹配

    当主内核和影子内核之间发生不匹配时:

    • R5F 子系统生成 锁步比较错误事件。
    • 此事件路由到 ESM(错误信令模块)。
    • ESM 可配置为:
      • 触发 中断 (用于软件处理/记录)
      •  外部 ERROR 引脚 (nERROR) 将其置为有效以提供系统级响应
      • 触发 器件复位 (适用于安全关键型应用)

    5.故障状态寄存器和诊断机制

    机制 安全
    ESM 状态寄存器 捕获触发的错误事件(锁步比较错误具有特定事件 ID)
    R5FSS 比较错误标志 表示发生不匹配的特定群集
    ESM 中断(高/低优先级) 故障的软件通知
    NERROR 引脚 硬件级外部故障信号
    STCR(自检控制器) CAN 注入故障以验证锁步比较逻辑

    6、示例项目和验证

    •   适用于 AM263Px 的 MCU+ SDK 应包含包含包含  锁步相关示例的 SDL(安全诊断库)、包括 ESM 配置和 STC(自检控制器)使用情况。
    • 查看以下示例: <SDK_INSTALL>/examples/sdl/ —具体来说是 STC 和 ESM 示例。
    •  AM263Px 技术参考手册 (TRM) 介绍了 R5FSS 锁步架构、ESM 事件映射和 STC 寄存器。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:Nilabh Anand、

    感谢您的详细说明。 我有一些关于 LP-AM263P (AM263Px) 上锁步模式的实际配置和验证的后续问题。

    1. Sysconfig 中有关锁步配置的说明

    您提到可以通过 SysConfig 将 R5F 集群工作模式选择为“锁步“来配置锁步模式。

    请就以下方面提供更具体的指导:

    • 在 SysConfig 中、在哪个模块或配置部分下配置 R5F 集群工作模式?

    • 要为 R5FSS0 和 R5FSS1 启用锁步模式、应选择什么确切的设置或选项?

    • 在 SysConfig 中启用锁步模式并生成工程文件后、我应该检查哪个(些)生成的文件以验证是否已正确应用配置?

    • SysConfig 是否生成任何特定宏、配置结构、链接器设置或引导配置参数、以指示集群已配置为锁步操作?

    • 您能否提供一个确认已启用锁步模式的生成配置或代码片段的示例?

    2.如何确认群集实际上是在锁步模式下运行的

    在构建并加载应用程序后、我想验证硬件是否真正在锁步模式下运行。

    请您澄清一下:

    • 是否有一个寄存器、状态位、DEVSTAT 字段或 R5FSS 配置寄存器明确指示集群是以锁步模式还是拆分模式运行?

    • 这可以通过 CCS 寄存器视图或 Memory Browser 进行验证? 如果是、应检查哪个登记册?

    • 在 CCS 中进行调试时、当集群配置为锁步模式时、我应该看到什么?

    • 每个 R5F 集群是否应该只显示一个调试器目标、或者是否有另一种建议的方法来确认锁步操作?

    • 是否有任何可用于确认锁步模式有效的软件 API、SDL API、诊断测试或引导日志消息?

    3.使用 SDK 示例进行锁步验证的说明

    我目前正在查看以下 SDK 示例:

    MCU_PLUS_SDK_am263px_10_00_00_26/examples/sdl/STC/STC_MCU/am263px-cc/

    其中包含:

    • r5fss0-0_nortos

    • r5fss1-0_nortos

    • system_nortos

    请您澄清一下:

    • 该示例如何验证或演示锁步功能?

    • STC 示例是否要求 R5F 集群已配置为锁步模式?

    • 如果该示例成功执行、如何确定它是在锁步模式还是在拆分模式下运行?

    • 应检查哪些状态寄存器、ESM 事件、故障标志或诊断输出来证明锁步比较器处于活动状态?

    • 是否有建议的故障注入过程来有意触发锁步比较错误并验证 ESM 报告路径?

    • 除了 STC 示例之外、MCU+ SDK 中是否有任何专用的锁步验证示例?

    我的目标是了解配置流程和推荐的方法、以最终验证锁步硬件机制是否已启用并在 R5FSS0 和 R5FSS1 上正常运行。

    感谢您的支持。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    ...请参阅 AM263P4x TRM se

    [引述 userid=“543018“ url=“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1657722/am263p4-how-to-configure-and-verify-lockstep-mode-on-lp-am263p/6393075

    1. Sysconfig 中有关锁步配置的说明

    您提到可以通过 SysConfig 将 R5F 集群工作模式选择为“锁步“来配置锁步模式。

    请就以下方面提供更具体的指导:

    • 在 SysConfig 中、在哪个模块或配置部分下配置 R5F 集群工作模式?

    • 要为 R5FSS0 和 R5FSS1 启用锁步模式、应选择什么确切的设置或选项?

    • 在 SysConfig 中启用锁步模式并生成工程文件后、我应该检查哪个(些)生成的文件以验证是否已正确应用配置?

    • SysConfig 是否生成任何特定宏、配置结构、链接器设置或引导配置参数、以指示集群已配置为锁步操作?

    • 您能否提供一个确认已启用锁步模式的生成配置或代码片段的示例?

    [/报价]

    [引述 userid=“543018“ url=“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1657722/am263p4-how-to-configure-and-verify-lockstep-mode-on-lp-am263p/6393075

    2.如何确认群集实际上是在锁步模式下运行的

    在构建并加载应用程序后、我想验证硬件是否真正在锁步模式下运行。

    请您澄清一下:

    • 是否有一个寄存器、状态位、DEVSTAT 字段或 R5FSS 配置寄存器明确指示集群是以锁步模式还是拆分模式运行?

    • 这可以通过 CCS 寄存器视图或 Memory Browser 进行验证? 如果是、应检查哪个登记册?

    • 在 CCS 中进行调试时、当集群配置为锁步模式时、我应该看到什么?

    • 每个 R5F 集群是否应该只显示一个调试器目标、或者是否有另一种建议的方法来确认锁步操作?

    • 是否有任何可用于确认锁步模式有效的软件 API、SDL API、诊断测试或引导日志消息?

    [/报价]

    有关相应的寄存器、请参阅 AM263P4x 寄存器附录

    [引述 userid=“543018“ url=“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1657722/am263p4-how-to-configure-and-verify-lockstep-mode-on-lp-am263p/6393075

    3.使用 SDK 示例进行锁步验证的说明

    我目前正在查看以下 SDK 示例:

    MCU_PLUS_SDK_am263px_10_00_00_26/examples/sdl/STC/STC_MCU/am263px-cc/

    其中包含:

    • r5fss0-0_nortos

    • r5fss1-0_nortos

    • system_nortos

    请您澄清一下:

    • 该示例如何验证或演示锁步功能?

    • STC 示例是否要求 R5F 集群已配置为锁步模式?

    • 如果该示例成功执行、如何确定它是在锁步模式还是在拆分模式下运行?

    • 应检查哪些状态寄存器、ESM 事件、故障标志或诊断输出来证明锁步比较器处于活动状态?

    • 是否有建议的故障注入过程来有意触发锁步比较错误并验证 ESM 报告路径?

    • 除了 STC 示例之外、MCU+ SDK 中是否有任何专用的锁步验证示例?

    我的目标是了解配置流程和推荐的方法、以最终验证锁步硬件机制是否已启用并在 R5FSS0 和 R5FSS1 上正常运行。

    [/报价]

    请参阅此文档: software-dl.ti.com/.../SDL_STC_PAGE.html