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.

[参考译文] AM2434:AM2434 MCU+ SDK—非‑Ω 窗口式 WDT、用于复位完整 SoC + RTI 预加载问题(需要指导)

Guru**** 2804365 points

Other Parts Discussed in Thread: AM2434, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1618495/am2434-am2434-mcu-sdk-non-windowed-wdt-to-reset-full-soc-rti-preload-issue-needs-guidance

器件型号: AM2434
主题: SysConfig 中讨论的其他器件

我正在‑实现非 I ² C 窗口看门狗  AM2434  复位整个 SoC(所有内核+外设)的中断。 我查看了 SDK 示例和文档、但找不到符合此要求的参考实现。

在 TI 论坛主题中、我了解到通过 SysConfig 配置看门狗目前无法正常工作、因此我将论坛指南和 SDK 示例组合在一起、手动组装了该解决方案。 ‑、对于这种安全关键功能、实施起来会感觉异常复杂、我想 得到更准确的指导 来正确操作、而不是依赖意外行为。

具体问题:除非延迟、否则不应用 RTI 预加载

我想强调我观察到的修正后添加的行为:

delay_us (1000); 

如果执行 RTI 配置序列:

  • SDL_RTI_CONFIG ()
  • SDL_RTI_verifyConfig ()
  • SDL_RTI_readStaticRegs ()

然后立即调用  SDL_RTI_start() 、RTI 以默认预加载值  0x1FFFFFF 开始 、而不是在配置中设置预加载值。 在  SDL_RTI_start () 之前添加延迟 使其以预期的预加载一致地启动。

这需要花费相当长的时间才能确定、我担心我可能缺少所需的同步步骤(或者这可能是一个已知问题)。

问题

  1. AM2434 上是否有建议/正式的 RTI/WDT 初始化序列可确保在 SDL_RTI_START  () 之前锁存预加载值
  2. “开始前延迟“是否是已知的权变措施、如果是、是否有更确定的方法(例如,状态轮询或记录的同步要求)?
  3. 对于完整的 SoC 复位、除了实施内容之外、是否还有其他任何我应该验证的看门狗/复位路由设置?
  4. 是否有办法在调试暂停时冻结计数器? 我在 RTI 配置中找到了一个位、用于在内核发生中断时停止计数器、但仅适用于 CNT0/CNT1 而非 WDT
  5. 是否有正确设置 RTI WDT 以触发完整 SoC 复位(所有内核+外设)(可能通过 ESM 进行复位)的指南/示例?

开发环境

  • MCU+ SDK:11.00.00.15
  • 编译器:TI ARM CLANG 4.0.4 LTS
  • SysConfig:1.26.0
  • CCS:20.40
  • 器件:AM2434 (Cortex-R5F 0-0)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Roberto Panerati、

    请查看下面的常见问题解答。 ESM 模块中的 WDT 到期后可以复位 SoC。 下面的常见问题解答将帮助您 在示例中启用 WDT+ESM。 请查看与您的用例相关的 AM64x 示例。

    如果仍有问题、请下次分享您的项目、我可以查看该示例并为您提供指导。

     【常见问题解答】AM64X/AM62X:当 WDT 计时器在 AM64X 和 AM62X 到期时如何复位 SOC? 

    此致、

    Anil.

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

    我遵循了常见问题解答、设法通过 ESM 错误进行复位。 我还有 2 个问题:

    1. 什么是“esmErrorConfig"?“? 在 “SDL_ESM_CONFIG"结构“结构中? 我不知道“自检错误配置“的含义
    2. 如何在调试停止时冻结 WDT 递减计数器以防止不必要的复位?

    谢谢、

    Roberto

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

    您好、Roberto、

    您不需要配置 ESM 错误设置。

    常见问题解答中随附的示例控制 CTRL MMR 寄存器、以便在 WDT 生成计时器到期事件后触发 SOC 复位。

    您可以将下面的结构设置为全零;不需要 ESM 错误配置:

    /**<根据 esmErrorConfig 配置以测试高优先级或低优先级事件。 */
    .errorpinBitmap ={0x00000000u、0x00000000u、0x00000000u、0x00000000u、0x00000000u、
    0x00000000u、0x00000000u}、

    下面的寄存器包含 COS(暂停时继续)位。 通过控制该位、您可以确定计数器是否继续运行
    访问 I2C。

    请告诉我这是否适合您。
    此致、
    Anil.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Anil、

    我尝试使用 COS 位、但当调试停止并导致复位时、WDT 的计数器仍在递减。

    您突出显示的表格讲述了 COS “该位确定当器件进入调试模式时是否两个计数器都停止“、我认为它指的是 RTI 的 2 个计数器 (UC0/UC1)、而不是看门狗递减计数器 (DWDCNTR)、但我不确定这一点。

    此致、

    Roberto

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

    您好、Roberto、

    请看下面我的评论.

    1.调试暂停寄存器(建议-待处理详细信息)
    -有一个专用的 DEBUG_SUSPEND 寄存器控制 WDT 在调试暂停期间是否停止
    -这是在 JTAG 调试期间冻结 WDT 的适当机制
    -从内部团队获取登记详细信息
    -状态:待定 — 一旦详细信息可用,将会更新

    2.临时解决办法 — 禁用 WDT 过期时重置
    -如果在调试期间不能停止 WDT、则在 WDT 到期时阻止 SOC 复位
    -寄存器:MCU_CTRL_MMR -> RST_CTRL
    -地址:0x04500000 + 0x18170 = 0x04518170
    -位:17 (MCU_ESM_ERROR_RST_EN_Z)
    设置:将第 17 位设置为 1
    -影响:WDT 到期不会导致 SOC 复位
    -限制: WDT 计数器仍然运行并到期,仅禁用复位操作

    此致、

    Anil.