美文网首页
FreeRTOS操作系统例程(4):调度锁

FreeRTOS操作系统例程(4):调度锁

作者: 闵许可 | 来源:发表于2019-05-22 17:50 被阅读0次

    1.调度锁函数只是禁止了任务调度,并没有关闭任何中断

    2.调度锁开启函数 vTaskSuspendAll 和调度锁关闭函数 xTaskResumeAll 一定要成对使用

    3.切不可在调度锁开启函数 vTaskSuspendAll 和调度锁关闭函数 xTaskResumeAll 之间调用任何会引起任务切换的 API,比如 vTaskDelayUntil、vTaskDelay、xQueueSend 等

    /*

    *********************************************************************************************************

    *  函 数 名: vTaskLED

    *  功能说明: LED 闪烁

    *  形 参: pvParameters 是在创建该任务时传递的形参

    *  返 回 值: 无

    * 优 先 级: 2

    *********************************************************************************************************

    */

    static void vTaskLED(void *pvParameters)

    {

    while(1)

    {

    vTaskSuspendAll(); /* 开启调度锁 */

    printf("任务 vTaskLED 正在运行\r\n");

    //xTaskResumeAll ();

    if(!xTaskResumeAll()) /* 关闭调度锁,如果需要任务切换,此函数返回 pdTRUE,否则返回 pdFALSE */

    {

    taskYIELD ();

    }

    bsp_LedToggle(2);

    vTaskDelay(200);

    }

    }

    相关文章

      网友评论

          本文标题:FreeRTOS操作系统例程(4):调度锁

          本文链接:https://www.haomeiwen.com/subject/xzddzqtx.html