在官方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。
guozi zhou52:
排版异常 = =!
在官方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。
guozi zhou52:
回复 guozi zhou52:
目前 在 ti 的 PinStandby 工程 和 zstack工程中 添加开门狗,不进行喂狗动作,看门狗没有生效;
设备休眠再唤醒后看门狗 是否需要手动启动?