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/CC2650STK:2.2.1与2.1.0中缺少看门狗 NVIC 处理程序

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

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/586176/rtos-cc2650stk-watchdog-nvic-handler-missing-in-2-2-1-vs-2-1-0

器件型号:CC2650STK
Thread 中讨论的其他器件:CC2650CC2640

工具/软件:TI-RTOS

由于来自 svendbt 的出色代码、我在 v2.1.0 simplelink BLE 堆栈 SDK 的默认 SensorTag 示例应用中使用了看门狗功能
e2e.ti.com/.../440356

但现在在 v2.2.1中、默认安装使用 ccsv7和 SensorTag 示例应用程序开箱即用、只需添加3个文件即可支持看门狗、系统就会在此处挂起缺少的处理程序:

void Hwi_exHandler (UINT * exstack、UINT LR)

   Hwi_module->exACTIVe[0]= true;

   /*如果没有插入异常处理程序,请在此处旋转*/
   while (Hwi_excHandlerFunc = NULL){
   ;
   }

   Hwi_exHandlerFunc (exstack、LR);

请注意、我尝试了奇怪的建议、使用 INT_NMI_FAULT 而不是此处的 INT_WDT_IRQ:

Christin Lee
TI-RTOS 看门狗驱动程序中使用的中断编号为 INT_NMI_FAULT。
将.intNum = INT_WDT_IRQ 更改为.intNum = INT_NMI_FAULT、

e2e.ti.com/.../1956161

这里没有什么能帮助您:


e2e.ti.com/.../536717

是否有人可以建议如何让 v2.2.1 SDK 中的看门狗工作?

感谢您提供参考、我在 v2.1.0中运行良好但 v2.2.1中不运行的 svendbt 代码是我放入名为 bsp_wdT.c 的文件中的以下代码:


#include
#include

#include
#include

#include "bsp_wdT.h"

typedef enum CC2650_WatchdogName{
   CC2650_WATCHDOG0 = 0、
   CC2650_WATCHDOGCOUNT、
} CC2650_WatchdogName;

WatchdogCC26XX_Object WatchdogCC26XX Objects[CC2650_WATCHDOGCOUNT];

const WatchdogCC26XX_HWAttrs watchdogCC26XHwAttrs[]= {
 {
   baseAddr = WDT_BASE、
   .intNum  = INT_WDT_IRQ、
   .reloadValue = 2000
 }
};

const Watchdog_Config Watchdog_config[]={
 {&WatchdogCC26XX_fxnTable、&watchdogCC26XXObjects[0]、&watchdogCC26XXHwAttrs[0]}、
 { NULL、NULL、NULL }、
};

静态空 wdtCbk (UArg 句柄)

 Watchdog_clear ((Watchdog_handle)句柄);


空 bspWatchdogInit(空)

 Watchdog_Params wdtPrm;
 Watchdog_Params_init (wdtPrm);

 wdtPrm.callbackFxn = wdtCbk;
 wdtPrm.debugStallMode = Watchdog_debug_star_on;
 wdtPrm.resetMode = Watchdog_reset_on;

 Watchdog_handle wdtHdl = Watchdog_open (0、wdtPrm);

 Watchdog_setReload (wdtHdl、(1500000 * 2)); // 2秒(WDT 始终以48MHz/32运行)。


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

    BLE 堆栈2.2.1附带的 TI-RTOS 版本具有看门狗驱动程序的官方发布版本。 您已经尝试过吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Christin -感谢您花时间回答这个帖子、但您能否提供任何帮助或见解、而不是询问一个看似在问我是否是 RTFM 的口头问题? 事实上,我有 RTFM,但更重要的是,我在之前的堆栈版本上做了这项工作,我在创建这个版本之前,已经对现有的帖子进行了绘制,这样我就不会浪费任何人的时间了。 在2.2.1版本说明中、只有以下小块:
    - TI-RTOS 2.20、增加了对 ADC、看门狗和 GPTimer 外设驱动程序的支持
    上述内容不会导致指向'SRU393_CC2640_BLE_Software_Developer's Guide'的链接,该链接介绍如何使用此'Added support for ... 看门狗"。 在"SWRU393_CC2640_BLE_Software_Developer's Guide"中搜索也不会提供有关使用此新增支持的任何线索。 在示例应用程序中进行浏览也不会显示一个示例应用程序、该示例演示了如何使用此新增支持。 阅读 tirtos 用户指南也不会对此有所帮助。
    那么、您能否提供有关如何使用此"官方版本的看门狗驱动程序"的线索? 当您在走廊上经过他/她时、您能问"供应商"吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我已经找到了 TI 已经知道的解决这个问题的方法、已经将近1年了、但他们在任何发布的代码中都没有解决这个问题:

    e2e.ti.com/.../532111