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.

[参考译文] CC2651R3:MCU 复位原因显示所需的帮助

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1432265/cc2651r3-assistance-needed-with-mcu-reset-reason-display

器件型号:CC2651R3

工具与软件:

尊敬的 TI 团队:

我目前在项目的终端上显示系统重置原因时遇到问题。

我已经实现了以下代码、来读取 RESETCTL 寄存器并检查 MCU 复位的原因:

#ifdef MCU_RESET_REHION
//读取 RESETCTL 寄存器
resetctl_value = HWREG (AON_PMCTL_BASE + AON_PMCTL_O_RESETCTL);//检查 MCU 复位原因
check_reset_source (resetctl_value);
#endif /* MCU_RESET_REHION */

在该check_reset_source函数中、我定义了各种复位条件。 但是、我注意到、对于软件复位以及看门狗触发器在 VDDS 上显示"欠压检测"时、复位原因相同、而不是仅显示相关的原因。 以下是我的check_reset_source实施的一部分:

void check_reset_source (uint32_t resetctl_value)
//各种复位源的位位置/* 0h =上电复位1h =复位引脚、2h = VDDS 上的欠压检测、4h = VDDR 上的欠压检测、5h = SCLK_LF、SCLK_MF 或 SCLK_HF 时钟丢失检测、6h =通过 SYSRESET 或硬件电源管理超时检测实现软件复位。 注意:硬件电源管理超时电路始终处于启用状态。 7h =通过 PRCM 热复位请求*/进行软件复位

if (resetctl_value 和 POR_RST){
strcpy (resetMessageBuffer、"POR_RST\r\n");
//正在记录...
}
否则、if (resetctl_value & RST){
strcpy (resetMessageBuffer、"RST\r\n");
//正在记录...}
//附加重置检查...
否则{
strcpy (resetMessageBuffer、"UKN_RST\r\n");
//正在记录...
}

以下是项目详细信息。

  • 微控制器:  CC2651R3
  • SDK:  simplelink_cc13xx_cc26xx_sdk_7_41_00_17
  • CCS 版本:  CCS12.7.
  • 基本代码:  Project Zero  

您能否提供有关如何修改check_reset_source功能的指导、以确保仅记录并显示正确的重置原因?

谢谢你

此致、

Aarohi Shirbavikar

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

    您好!

    您是否尝试过使用 SysCtrlResetSourceGet ()?

    -kel

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

    尊敬的 Aarohi:

    这是 SysCtrlResetSourceGet driverlib 和 AON_PMCTL:RESETCTL 寄存器说明。  WDT 功能说明( TRM 的17.2)确实注意到看门狗会导致系统热复位。  我在 check_reset_source 函数中看不到足够的粒度来区分欠压、系统和热复位。

    此致、
    Ryan