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.

[参考译文] RTOS/CC2640:借助看门狗计时器无法复位 cc2640

Guru**** 2595805 points
Other Parts Discussed in Thread: CC2640, CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/610304/rtos-cc2640-not-able-to-reset-cc2640-with-the-help-of-watchdog-timer

器件型号:CC2640
Thread 中讨论的其他器件: CC2650

工具/软件:TI-RTOS

您好!

我尝试通过实施看门狗计时器来重置 cc2640。 我使用的是 TI-RTOS 2_13_00_06。  我已经完成了一个回调处理程序函数、用于检查看门狗计时器的过期时间。 在日志中、我看到器件将处理函数、并且卡在那里。

/*********
 *@fn     wdtCallback
 *
 *@  看门狗简单回调。
 *
 *@param  none
 *
 *@返回 无。
 *

void wdtCallback (UArga0){
   UART_WRITE (SbpUartHandle、"Watchdog handle\n"r、18);
   安全装置_CLEAR (hWDT);

/*在 SimpleBLEPeripheral_init()中*/

   Watchdog_init();
   Watchdog_Params_init (wparams);
   wparams.callbackFxn = wdtCallback;

   whandle = Watchdog_open (CC2650_WATCHDOG0、wparams);
   Watchdog_setReload (whandle、45000000);// 30秒计时  器((48Mhz / 32)*30)

我的代码中有什么问题、请尽快指导我。

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

    您好!

    我们不在此 TI-RTOS 版本上提供看门狗支持。 有关 TI-RTOS 2.15的移植指南、请参阅此帖子。

    请注意、如果连接了调试器、则会阻止 CC26xx 复位。

    祝你一切顺利

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

    您好、JXS、

    现在、我尝试使用 tirtos_cc13xx_cc26xx_2_20_01_08和 ble_sdk_2_02_01_18 SDK 执行相同的操作、但仍然无法重置 cc2640。 是否有任何用于看门狗初始化的专用示例。 我曾尝试过 e2e 论坛的一个例子:   它仍然不起作用。 我在这里通过添加初始化代码、请检查  并告知我哪里出错了

    /***** CC2650DK_7ID.c (board.c)******** /

    /*包含驱动程序*/
    #include "WatchdogCC26XX.h"
    /* TRNG 对象*/
    WatchdogCC26XX_Object WatchdogCC26XX Objects[CC2650_WATCHDOGCOUNT];

    /*配置结构、描述要使用的引脚*/
    const WatchdogCC26XX_HWAttrs watchdogCC26XHwAttrs[]= {
     {
       baseAddr = WDT_BASE、
       .intNum  = 1500000、
     }
    };



    /*配置结构*/
    const Watchdog_Config Watchdog_config[]={
     {&WatchdogCC26XX_fxnTable、&watchdogCC26XXObjects[0]、&watchdogCC26XXHwAttrs[0]}、
     { NULL、NULL、NULL }、

    };


    /***** simple_peripheral.c ******** /

    #include
    #include
    #include
    #include


    Watchdog_handle whandle;
    Watchdog_Params wparams;

    //看门狗手柄//////////////////////////////////////////////////////////////////////////////////////////////
    void wdtCallback (UArga0)

     安全装置_CLEAR (hWDT);



    /******* simplebleperipheralinit()******** /


      //看门狗定时器
       Board_initWatchdog();
       Watchdog_Params_init (wparams);
       wparams.callbackFxn = wdtCallback;

       whandle = Watchdog_open (CC2650_WATCHDOG0、wparams);
       Watchdog_setReload (whandle、45000000);  //(48MHz /32 = 1500000 = 1秒、48MHz * 30 /32 => 30秒)


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

    您好!

    TI 的任何人是否能就相同的问题为我提供帮助?

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

    您是否确认执行了您的 wd 回调函数。 请注意、当 MCU 处于待机状态时、WD 不会计数。 最后、确保未连接调试器、如果连接了 MCU、则 MCU 不会复位。

    祝你一切顺利