大家好、
使用 simplelink_cc13x0_sdk_2_20_00_38、将看门狗设置为8S、并在回调中直接调用复位 API。 仅创建了一个任务、在此任务中单独测试了两段代码、但会显示不同的结果:
1.
void watchdogCallback (uintptr_t 未使用)
{
debug_uart_send_u8 (0xcc);
SysCtrlSystemReset();
}
void UserFxn (UArg arg0、UArg arg1)
{
WATCHDOG_PARAMS 参数;
watchdog_init();
/*创建并启用禁用复位的看门狗*/
WATCHDOG_PARAMS_INIT (¶ms);
params.callbackFxn =(Watchdog_Callback)看门狗回调;
params.resetMode = Watchdog_reset_on;
WatchdogHandle = Watchdog_open (Board_WATCHDOG0、¶ms);
while (1)
{
Task_sleep (1000000);//10s
}
}
在串行端口上打印8S 测试结果时、进入看门狗回调并复位。
2.上述看门狗配置不变,创建一个计时器并使用信标阻止进入睡眠状态。
while (1)
{
ClockP_setTimeout (clockp_handle1、1000000);//单位:10us
//启动计时器
ClockP_start (clockp_handle1);
//挂起等待计时器进入睡眠状态的时间
Semaphore_pend (semaphore_handle (&SemStructurt)、BIOS_wait_forever);//任务阻断
}
测试结果 是没有看门狗回调。
为什么会这样? 您能帮助检查这个问题吗? 谢谢。
此致、
樱桃