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.

[参考译文] AM2432:热复位

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1394901/am2432-warm-reset

器件型号:AM2432

工具与软件:

#1。 从下面的帖子中可以看出、器件不支持看门狗复位? 因为它是令人难以置信的,所以想要再次确认。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1077458/am2432-watchdog-warm-reset-is-not-working/

#2。 是否有寄存器可以触发热复位? 似乎可以从 以下 TRM 部分执行什么操作、但为什么 M4重置主域和主域都重置主域? 是否应该将 M4复位 MCU 域?

#3.  PM 对 Sciclient_pmDeviceReset()请求执行了什么操作? 我想引用处理代码。

int32_t Sciclient_pmDeviceReset(uint32_t timeout)
{
    int32_t retVal = SystemP_SUCCESS;

    Sciclient_ReqPrm_t reqParam ;
    struct tisci_msg_sys_reset_req request = {{0}};
    struct tisci_msg_sys_reset_resp response = {0};
    reqParam.messageType    = (uint16_t) TISCI_MSG_SYS_RESET;
    reqParam.flags          = (uint32_t) TISCI_MSG_FLAG_AOP;
    reqParam.pReqPayload    = (const uint8_t *) &request;
    reqParam.reqPayloadSize = (uint32_t) sizeof(request);
    reqParam.timeout        = (uint32_t) timeout;

    Sciclient_RespPrm_t respParam ;
    respParam.flags           = (uint32_t) 0;   /* Populated by the API */
    respParam.pRespPayload    = (uint8_t *) &response;
    respParam.respPayloadSize = (uint32_t) sizeof(response);

    retVal = Sciclient_service(&reqParam, &respParam);
    if((retVal != SystemP_SUCCESS) ||
        ((respParam.flags & TISCI_MSG_FLAG_ACK) != TISCI_MSG_FLAG_ACK))
    {
        retVal = SystemP_FAILURE;
    }
    return retVal;
}

#4. 可以 在 数据或指令中止处理程序中调用 Sciclient_pmDeviceReset ()吗? 希望在异常中止时执行热复位。 是否有其他关于中止处理的建议?