推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

实验52_任务优先级动态调整.docx

资料介绍

实验 52:任务优先级动态调整

实验说明

实验概述

在某些应用场景中,任务的优先级需要在运行时根据系统状态动态调整。例如,当系统处于正常运行模式时,通信任务具有普通优先级;当接收到紧急指令时,通信任务需要提升优先级以确保及时响应。FreeRTOS 提供了 vTaskPrioritySet() 函数,允许在运行时修改任务的优先级。

实验原理

vTaskPrioritySet() 可以提升或降低指定任务的优先级。如果新优先级高于当前运行的任务,会立即触发一次上下文切换。需要注意的是,降低优先级不会立即触发切换,但调度器会在下一个节拍中断时重新评估调度决策。

关键知识点

1. vTaskPrioritySet() 动态修改任务优先级。

2. 提升优先级到高于当前任务时立即触发切换。

3. 降低优先级后,同优先级或更高优先级的任务将获得运行机会。

实验现象

任务 1 初始为低优先级,任务 2 周期性提升和降低任务 1 的优先级,观察任务 1 执行频率的变化。

完整代码

  c
#include "FreeRTOS.h"
#include "task.h"
#include <stdio.h>

TaskHandle_t xTask1Handle = NULL;

/* 任务 1:打印自身优先级 */
static void vTask1(void *pvParameters)


部分文件列表

文件名 大小
实验52_任务优先级动态调整.docx 38K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单
  • 21下载积分 打赏60.00元   3天前

    用户:gsy幸运

  • 21下载积分 打赏70.00元   3天前

    用户:铁蛋锅

  • 21下载积分 打赏65.00元   3天前

    用户:xzxbybd

  • 21下载积分 打赏60.00元   3天前

    用户:jh0355

  • 21下载积分 打赏60.00元   3天前

    用户:w178191520

  • 21下载积分 打赏20.00元   3天前

    用户:jh03551

  • 21下载积分 打赏20.00元   3天前

    用户:sun2152

  • 21下载积分 打赏20.00元   3天前

    用户:kk1957135547

  • 21下载积分 打赏25.00元   3天前

    用户:w1966891335

  • 21下载积分 打赏20.00元   3天前

    用户:xuzhen1

  • 21下载积分 打赏15.00元   3天前

    用户:x15580286248

  • 21下载积分 打赏25.00元   3天前

    用户:pcb

  • 21下载积分 打赏20.00元   3天前

    用户:bhacker

  • 21下载积分 打赏15.00元   3天前

    用户:liqiang9090

  • 21下载积分 打赏25.00元   3天前

    用户:有理想666

  • 21下载积分 打赏15.00元   3天前

    用户:godbox

  • 21下载积分 打赏15.00元   3天前

    用户:aetek

  • 21下载积分 打赏5.00元   3天前

    用户:mulanhk

  • 21下载积分 打赏5.00元   3天前

    用户:JuneLin61

推荐下载