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.

[参考译文] AM2431:AM2431–WDT 复位后寄存器保留

Guru**** 2924030 points

Other Parts Discussed in Thread: AM2431

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1652201/am2431-am2431-register-retention-after-wdt-reset

器件型号: AM2431

 我们目前正在进行故障诊断、想了解 AM2431 器件上看门狗 (WDT) 复位后寄存器保留的行为。
 我们的要求是确定是否可以在 WDT 触发的复位中保留一小段信息(例如故障标志)、以便在系统重新启动后读取它。
 
 我们要确认以下几点:
AM2431 中是否有任何寄存器在 WDT 复位(热复位)后保留其值?
是否有影响寄存器保留的特定复位类型(例如 MCU 复位与主复位)?
 
如果能提供任何指导或提及《技术管理框架》的相关章节、将不胜感激。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    让我们提供有关我们的使用场景的更多详细信息。 当前为 Cortex‑R5F 存储器、OCSRAM 存储器和 DDR 启用了 ECC。 当发生双‑位错误时、系统会立即复位。 重新启动后、我们想确定这三个 ECC 源中的哪一个触发了 WDT 复位。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Qiao、

    如果您想了解有关复位的更多信息、请查看 AM243 TRM 的第 5 节。 Device Configuration、Point 5.3 Reset

    1.WDT 复位(热复位)后 AM2431 中是否有任何寄存器保留其值?

    您可以阅读以下文章、了解有关重置的其他信息:

    AM2434:在热复位期间在 RAM 中保留变量。

    【常见问题解答】AM625 / AM623 / AM620-Q1 / AM625-Q1 / AM62Ax / AM62D-Q1 / AM62Px / AM64x / AM243x (ALV、ALX) 设计建议/定制电路板硬件设计 — 处理器复位输入,复位状态输出和连接建议

     

    2]是否有特定的复位类型(例如 MCU 复位与主复位)会以不同的方式影响寄存器保留?

    MCU 域和主域可通过软件配置为具有独立的热复位引脚。 MCU_RESETz 和 RESETz_REQ。 默认情况下、这两个引脚具有相同的效果、将用作 MAIN 域和 MCU 域的热复位源。 当 MCU 域配置为复位隔离时、主域复位将只复位 MAIN 域、MCU 域将不受所有 MAIN 域复位的影响。

    此致、

    Borislav Lazarkov

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

    感谢您的答复。

    我目前正在尝试直接从 R5F 访问 M4F RAM、 但是、M4F RAM 区域似乎无法访问。

    是否需要任何其他设置来启用此访问?
    是否必须为此使用 IPC?

    我的代码如下。 当执行代码[*p = write_val;]时、它会跳转到地址 0x10。

    void TEST_RAM_RW (void)

    uint32_t write_val = 0x12345678;
    uint32_t read_val = 0;
    uint32_t addr = 0;

    DebugP_log(“RAM RW test start\n“);
    addr =(uint32_t) AddrTranslateP_getLocalAddr (CSL_MCU_M4FSS0_IRAM_BASE);

    Volatile uint32_t *p =(volatile uint32_t *) addr;

    *p = write_val;
    read_val =*p;

    if (read_val == write_val)

    DebugP_log(“pass:写入 OK、读取= 0x%08x\n“、READ_val);
    }
    暴露

    DebugP_log(“Fail:读取= 0x%08x\n“、READ_val);
    }
    }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我怀疑该地址 CSL_MCU_M4FSS0_IRAM_BASE 可能是无效地址。 跳转到的 0x10 发生对应于数据中止矢量地址。

    我想确认以下几点:

    1. 该函数的当前返回值 Bootloader_socIsMCUResetIsoEnabled 为 0、表示 MCU 未启用。 在这种状态下、MCU RAM 也会在复位后被清除吗?

    2. 要实现我的预期行为、我是否应该配置 pscMain2MCUDisable = 0pscMCU2MainDisable = 1、并确保 Bootloader_socIsMCUResetIsoEnabled 返回 1?

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

    您好、Qiao、

     您能否澄清地址 CSL_MCU_M4FSS0_IRAM_BASE? 名称中的 IRAM 代表什么 — 指令 RAM 或内部 RAM? 如果是指令 RAM、但您无法访问它、为什么不尝试使用 M4 数据 RAM - DRAM?

    此致、

    Borislav Lazarkov

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

    您好、Qiao、

     您是使用 AM64x/AM243x Linux SDK 还是 MCU + SDK?  您正在使用哪个版本的 SDK?

    此致、

    Borislav Lazarkov