zoukankan      html  css  js  c++  java
  • 海思NB-IOT的SDK看门狗的使用

    1. 看门狗需要喂狗,如果自己写的任务一直运行,那么空闲任务无法运行会导致看门狗复位,来看下看门狗的机制,首先系统启动的时候创建了空闲任务

    在这个函数里面void vTaskStartScheduler( void )创建了下面的空闲任务
    xReturn = xTaskCreate(    prvIdleTask,
                              "IDLE", configMINIMAL_STACK_SIZE,
                                    ( void * ) NULL,
                                    ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ),
                                    &xIdleTaskHandle );

    2. 看下空闲任务具体执行了什么,回调钩子函数

            #if ( configUSE_IDLE_HOOK == 1 )
            {
                extern void vApplicationIdleHook( void );
                vApplicationIdleHook();
            }
            #endif /* configUSE_IDLE_HOOK */

    3. 继续往下

    void vApplicationIdleHook(void)
    {
        watchdog_kick();
    }

    继续

    void watchdog_kick(void)
    {
        if (!watchdog_inited)
        {
            return;
        }
    
        hal_watchdog_kick();
    }

    4. 综上看来,必须所有的任务都进入睡眠之后才有机会喂狗,所以写的任务还是要保持一点空闲时间,让idle任务得以运行,从而喂狗。

  • 相关阅读:
    多维数组的索引与切片
    多维数组
    开学第一课Java考试
    大一第九周学习体会
    大一第八周学习体会
    大一第七周学习体会
    大一第六周学习体会
    大一第五周学习体会
    《大道至简》读后感
    大一暑假第四周学习体会
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/9210176.html
Copyright © 2011-2022 走看看