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.

[参考译文] LAUNCHXL-CC2650:未调用看门狗回调函数

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/1247727/launchxl-cc2650-watchdog-callback-function-not-being-called

器件型号:LAUNCHXL-CC2650
主题中讨论的其他器件: CC2650CC2640

大家好!

我使用的是 Launchxl-CC2650。

BLE SDK 2_02_07_06

TI RTOS 2.21.1.08

CCS7.4

编译器 TI Ver.5.2.6。

我已经在 uart_echo 示例代码中添加了看门狗驱动程序的代码。

我可以看到 UART 可以成功在串行端口上打印。

CC2650也会在看门狗计时器到期时重新启动。

我正在对看门狗回调函数中的 UART 端口进行写入、但未调用该函数。

请帮助

谢谢!

D·萨尔维

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

    您好、D:

    您是否已检查看门狗模块的 hwAttrs 结构正在使用哪个 intNum? 我希望确保为看门狗驱动程序注册正确的中断编号、

    此致!
    阿赫尤特·雷

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

    您好!

    代码按如下所示进行更改。

    const WatchdogCC26XX_HWAttrs watchdogCC26XXHWAttrs[CC2650_LAUNCHXL_WATCHDOGCOUNT] = {
        {
            .baseAddr = WDT_BASE,
    //        .intNum = INT_WDT_IRQ,//INT_NMI_FAULT
            .intNum = INT_NMI_FAULT,
            .reloadValue = 1000 /* Reload value in milliseconds */
        },
    };

    现在、

    调用 WDT 回调函数、但仅在连接了调试器时。

    当我断开调试器时、CC2650不会调用 WDT 回调函数

    (我要在 WDT 回调函数中切换 LED)

    德尼亚内什瓦尔

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

    您好!

    我不能只为了看门狗而连接调试器以便在我的产品中正常工作。

    请提供有关该问题的建议一些解决方案

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

    您好!

    很高兴听到你能够得到回电! 我有以下问题:

    -当您说回叫没有发生时,您是否知道设备上发生了什么?
    -你的回叫切换一个 LED,而没有其他任何东西?
    -你做了一个项目的重建之间闪存与连接的调试器和没有?
    -最后,你能告诉我,在你的代码中,你要从哪里更改 hwAttrs 结构?

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

    -当您说回叫没有发生时,您是否知道设备上发生了什么? -是的,在回调 LED 被切换


    -你的回叫 只 切换一个 LED,而没有其他任何东西? LED 仅被切换


    -你做了一个项目的重建之间闪存与连接的调试器和没有? -我尝试了两种方式,我断开了调试器,做了清理,重建-闪存代码

    然后我尝试、我保持调试器连接、然后清理干净、重新编译-Flash 代码。

    这两次,

    如果我有时成功地将电源连接到切换 LED 的 PCB 器件、但如果我再接通电源、有时会失败。

    是的、这也在没有连接调试器的情况下调用回调、但不是每次我对 PCB 进行下电上电时。


    -最后,你能告诉我,在你的代码中,你要从哪里更改 hwAttrs 结构? -它位于"CC2650_LAUNCHXL.c"文件中

    我们发送了一些设备进行现场测试、 面临我可以使用看门狗解决的问题、因此我必须向设备添加看门狗代码才能实现不间断运行。

    这种胎纹在过去23天内未得到解决、 请您尽快提供解决方案

    此致、

    D·萨尔维  

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

    尊敬的 Dnyaneshvar:

    我希望您做以下两件事:
    -在看门狗回调中,在中断处理程序中添加 Watchdog_clear(),作为回调函数的第一行,如果尚未完成。
    -打开热复位转换为系统复位功能。 在 CC2650器件上、默认情况下、如果看门狗将器件复位、则称为热复位。 根据技术参考手册、这可能会使器件处于未知状态。 因此、强烈建议将热复位转换为系统复位。 为此、需将 WARMRESET 寄存器中的 WR_TO_PINRESET 位写入1。 如何执行此操作的一个示例包含在第416行中的 src 中的示例/util/2im_extflash/cc2640/bim_main.c 文件中

    此胎纹在过去23天仍未解决, 请请求您尽快提供解决方案

    关于这一点,它不是好像我试图拒绝你的解决方案 Dnyaneshvar ,我正在试图尽快解决这个问题. 感谢您对此问题的耐心与合作。

    此致!
    阿赫尤特·雷

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

    在看门狗回调中,在中断处理程序中添加 Watchdog_clear(),作为回调函数内的第一行,如果尚未完成 -

    已经完成了。

    如何执行此操作的示例包含在第416行的 src 中的示例/util/2im_extflash/cc2640/bim_main.c 文件中-

    这一操作如图所示。

    这也没有带来任何好处。

    此致、

    德尼亚内什瓦尔

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

    您好!

    您是否仍在代码中为看门狗启用了调试停止? 在代码执行期间连接调试器会影响代码的时序/行为、这可能是您看到不同行为的原因。 调用/错过回调的方式有什么模式吗? 或者、您是否注意到系统最终出现了故障?

    此致、
    阿赫尤特·雷

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

    您是否仍在代码中为看门狗启用了调试停止?  -调试停止启用和禁用,两个条件都被检查, 在没有调试器的情况下测试没有任何区别

    调用/错过回调的方式有什么模式吗?  -这是随机的

    抱歉拼写错误

    此致、

    德尼亚内什瓦尔

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

    您好!

    这种情况发生的频率有多高? 您说过您在 UART Echo 示例中运行看门狗、您是否注意到串行终端上有任何奇怪的事情? 还是只是错过了回调?

    此致!
    阿赫尤特·雷