关于2640看门狗api调用问题
在官方echoUart工程中 测试看门狗功能:
看门狗超时时间设置成3秒, app任务whlie循环 使用cpu_delay()进行500ms延时:
对Watchdog_clear() 和 Watchdog_close() 做测试,执行代码:
测试 Watchdog_close:
/* Loop forever echoing */ while (1) { generalApp_delayMs(500); // Task_sleep(1000000/10); //UART_read(uart, &input, 1); input++; if(input == 2){//第1秒时进行喂狗,喂狗有效 Watchdog_clear(watchdog); }else if(input == 4){//第2秒时进行喂狗,喂狗有效 Watchdog_clear(watchdog); }else if(input == 6){//第3秒时 停止定时器, Watchdog_close(watchdog); //停止看门狗,该语句执行失败 }else if(input == 12){ //未执行到该语句,看门狗在idx =10 (第5秒)时,超时重启 Watchdog_clear(watchdog); } PIN_setOutputValue(ledPinHandle, Board_LED1, input%2); UART_write(uart, &input, 1); }
Watchdog_close() 看api介绍是 停止看门狗计数,上述代码中 调用该api后,看门狗依然在运行生效?
上述代码调用是否正确 或 我这边理解有误?
---------------------------------------------------------------------------------------------------------------------------
测试 Watchdog_close:
/* Loop forever echoing */ while (1) { // generalApp_delayMs(500); Task_sleep(1000000/10);//调用该api进行延时,不进行喂狗操作 //UART_read(uart, &input, 1); input++; // if(input == 2){ // Watchdog_clear(watchdog); // }else if(input == 4){ // Watchdog_clear(watchdog); // }else if(input == 6){ // Watchdog_close(watchdog); //停止看门狗(该语句执行后,查看看门狗定时器) // }else if(input == 12){ //看门狗在idx =10时,超时重启 // Watchdog_clear(watchdog); // } PIN_setOutputValue(ledPinHandle, Board_LED1, input%2); UART_write(uart, &input, 1); }
使用generalApp_delayMs()即,CPUdelay()延时 且 不进行喂狗操作,看门狗能够对设备进行重启
使用Task_sleep()让任务进入阻塞态 且 不进行喂狗操作,看门狗没有按预期进行重启设备? 这是什么情况?
3Q。
排版异常 = =!
在官方echoUart工程中 测试看门狗功能:
看门狗超时时间设置成3秒, app任务whlie循环 使用cpu_delay()进行500ms延时:
对Watchdog_clear() 和 Watchdog_close() 做测试,执行代码:
测试 Watchdog_close:
/* Loop forever echoing */
while (1) {
generalApp_delayMs(500);
// Task_sleep(1000000/10);
//UART_read(uart, &input, 1);
input++;
if(input == 2){//第1秒时进行喂狗,喂狗有效
Watchdog_clear(watchdog);
}else if(input == 4){//第2秒时进行喂狗,喂狗有效
Watchdog_clear(watchdog);
}else if(input == 6){//第3秒时 停止定时器,
Watchdog_close(watchdog); //停止看门狗,该语句执行失败
}else if(input == 12){ //未执行到该语句,看门狗在idx =10 (第5秒)时,超时重启
Watchdog_clear(watchdog);
}
PIN_setOutputValue(ledPinHandle, Board_LED1, input%2);
UART_write(uart, &input, 1);
}
Watchdog_close() 看api介绍是 停止看门狗计数,上述代码中 调用该api后,看门狗依然在运行生效?
上述代码调用是否正确 或 我这边理解有误?
---------------------------------------------------------------------------------------------------------------------------
测试 Watchdog_close:
/* Loop forever echoing */
while (1) {
// generalApp_delayMs(500);
Task_sleep(1000000/10);//调用该api进行延时,不进行喂狗操作
//UART_read(uart, &input, 1);
input++;
// if(input == 2){
// Watchdog_clear(watchdog);
// }else if(input == 4){
// Watchdog_clear(watchdog);
// }else if(input == 6){
// Watchdog_close(watchdog); //停止看门狗(该语句执行后,查看看门狗定时器)
// }else if(input == 12){ //看门狗在idx =10时,超时重启
// Watchdog_clear(watchdog);
// }
PIN_setOutputValue(ledPinHandle, Board_LED1, input%2);
UART_write(uart, &input, 1);
}
使用generalApp_delayMs()即,CPUdelay()延时 且 不进行喂狗操作,看门狗能够对设备进行重启
使用Task_sleep()让任务进入阻塞态 且 不进行喂狗操作,看门狗没有按预期进行重启设备? 这是什么情况?
3Q。
目前 在 ti 的 PinStandby 工程 和 zstack工程中 添加开门狗,不进行喂狗动作,看门狗没有生效;
设备休眠再唤醒后看门狗 是否需要手动启动?