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.

[参考译文] CCS/RF430FRL152H:RF430FRL152HEVM 看门狗

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/866284/ccs-rf430frl152h-rf430frl152hevm-watchdog

器件型号:RF430FRL152H
主题中讨论的其他器件: MSP430L092MSP-FET430UIF

工具/软件:Code Composer Studio

您好!

我想在软件问题发生后执行看门狗来控制系统重启。

但 它在 WDT_ISR 中没有中断。

我有以下一些问题:

1.如何测试系统卡滞并证明看门狗工作正常。

2.  看门狗发生时可以将复位信息写入 FRAM 吗? (系统复位后、它可以从 NFC 读取复位原因)

谢谢。

========================================================================================================================================================

WDTCTL = WDTPW | WDTIS2 | WDTCNTCL | WDTSSEL0;
SFRIE1 = WDTIE;

(笑声)

静态 u32_t wdtIdx = 0;
#pragma vector = WDT_Vector
_interrupt void WDT_ISR (void)

wdtIdx++;

========================================================================================================================================================

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

    您好、Allen、

    WDT 有两种模式。 看门狗模式和间隔定时器模式。

    在安全装置模式中、一个 PUC (复位)被生成并且无中断。 在间隔定时器模式下、产生中断。

    您已选择看门狗模式、因此不会发生中断。

    此致、

    Helfried

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

    您好、 Helfried、

    在正常情况下、我们将在系统引导时重置 FRAM 数据。

    并在 FRAM 中写入一些数据、前提是系统正常工作。

    但我们需要在看门狗复位发生后保留 FRAM 数据。

    我们能否从其他寄存器中知道它是正常的系统重启还是看门狗复位?

    谢谢。

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

    您好、 Helfried、

    对此问题有任何更新?

    谢谢。

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

    [引用 USER="Allen Chen 3)]我们能否从其他寄存 器了解它是正常的系统重启还是看门狗复位?[/引用]可以读取 SYSRSTIV 寄存器以确定复位的最后原因。

    请注意、可能有多个挂起的中断标志、因此 应读取 SYSRSTIV 寄存器、直到返回0、

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

    切斯特、您好!

    我在 main 函数的开始处添加断点。

    看门狗复位后、它将在此断点处停止。

    但我检查 SYSRSTIV 寄存器的值是否为0x0002。

    如何获取 WDT 超时(PUC)信息? 复位后还是复位前?

    谢谢。

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

    [引用 USER="Allen CHEN 3">但我检查 SYSRSTIV 寄存器的值是否为0x0002。[/引用] SYSRSTIV 寄存器可以返回 RF430FRL152H 数据表中描述的以下值:

     SYSRSTIV 寄存器可以有多个挂起的复位源、并按优先级顺序返回挂起的复位源。

     SYSRSTIV 的 值0x0002用于欠压、是一个有效值。

    [引述 USER="Allen Chen 3)]如何获取 WDT 超时(PUC 信息? 复位后或复位前?[/报价]复位后、您必须在循环中读取 SYSRSTIV、直到它返回 SYSRSTIV_NONE (0)。 可能记录了多个复位源。

    例如、在代码开始时使用以下形式的代码:

    int num_reset_causes 未知;
    int num_reset_causs_Bor;
    int num_reset_cas_svmbor;
    int num_reset_cas_rstnmi;
    int num_reset_cas_dobor;
    int num_reset_causs_secyv;
    int num_reset_cas_dopor;
    int num_reset_cas_wdtto;
    int num_reset_cas_wdtkey;
    int num_reset_causes;ccskey;
    int num_reset_causes;
    int num_reset_causes;
    
    int main (void)
    {
    bool reset_Causes 读取= false;
    操作
    {
    开关(SYSRSTIV)
    {
    案例 SYSRSTIV_NONE:
    RESET_ENASE_READ = true;
    中断;
    
    案例 SYSRSTIV_BOR:
    num_reset_causes 或++;
    中断;
    
    案例 SYSRSTIV_SVMBOR:
    num_reset_causes _svmbor++;
    中断;
    
    案例 SYSRSTIV_RSTNMI:
    num_reset_causes rstnmi++;
    中断;
    
    案例 SYSRSTIV_DOBOR:
    num_reset_causes Dobor++;
    中断;
    
    案例 SYSRSTIV_SECYV:
    num_reset_causes sectionyv++;
    中断;
    
    案例 SYSRSTIV_DOPOR:
    num_reset_causes Dopor++;
    中断;
    
    案例 SYSRSTIV_WDTTO:
    num_reset_causes wdtTO++;
    中断;
    
    案例 SYSRSTIV_WDTKEY:
    num_reset_causes wdtkey++;
    中断;
    
    案例 SYSRSTIV_CCSKEY:
    num_reset_causes ccskey++;
    中断;
    
    案例 SYSRSTIV_PMMKEY:
    num_reset_causes _pmmkey++;
    中断;
    
    案例 SYSRSTIV_PERF:
    num_reset_causes _perf++;
    中断;
    
    默认值:
    num_reset_causes 未知++;
    中断;
    }
    
    } while (!reset_causes _read); 

    我 目前没有 RF430FRL152H、但在 MSP430L092中测试了上述代码、该代码可以返回与  RF430FRL152H 相同的 SYSRSTIV 值。

    代码显示:

    a:在将器件连接到 MSP-FET430UIF 后、首次调试程序时记录 了一个 SYSRSTIV_BOR、然后记录了一个 SYSRSTIV_RSTNMI。

    b.第二次调试程序、让器件连接到 MSP-FET430UIF、只记录 了一个 SYSRSTIV_RSTNMI。

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

    切斯特、您好!

    在循环中添加读取 SYSRSTIV 后、即可正常工作。

    非常感谢。