Thread 中讨论的其他器件:CC2650、 CC2640
工具/软件: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
这里没有什么能帮助您:
是否有人可以建议如何让 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运行)。
}