微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于2640看门狗api调用问题

关于2640看门狗api调用问题

时间:10-02 整理:3721RD 点击:

在官方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工程中 添加开门狗,不进行喂狗动作,看门狗没有生效;

设备休眠再唤醒后看门狗 是否需要手动启动?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top