[应用相关] RTOS-定义空闲任务

[复制链接]
579|6
 楼主| 中国龙芯CDX 发表于 2025-3-28 20:45 | 显示全部楼层 |阅读模式
RTOS-定义空闲任务

  1. //空闲任务堆栈
  2. static StackType_t Idle_Task_Stack[configMINIMAL_STACK_SIZE];
  3. //定时器任务堆栈
  4. static StackType_t Timer_Task_Stack[configTIMER_TASK_STACK_DEPTH];

  5. //空闲任务控制块
  6. static StaticTask_t Idle_Task_TCB;        
  7. //定时器任务控制块
  8. static StaticTask_t Timer_Task_TCB;


  9. //获取空闲任务的任务堆栈和任务控制块内存,因为本例程使用的是静态内存
  10. //因此空闲任务的任务堆栈由用户来提供,接口函数就是下面这个函数

  11. //ppxIdleTaskTCBBuffer:任务控制块内存
  12. //ppxIdleTaskStackBuffer:任务堆栈内存
  13. //pulIdleTaskStackSize:任务堆栈大小
  14. void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer,
  15.                                                                    StackType_t **ppxIdleTaskStackBuffer,
  16.                                                                    uint32_t *pulIdleTaskStackSize)
  17. {
  18.         *ppxIdleTaskTCBBuffer=&Idle_Task_TCB;
  19.         *ppxIdleTaskStackBuffer=Idle_Task_Stack;
  20.         *pulIdleTaskStackSize=configMINIMAL_STACK_SIZE;
  21. }

  22. //获取定时器任务的任务堆栈和任务控制块内存
  23. //ppxTimerTaskTCBBuffer:任务控制块内存
  24. //ppxTimerTaskStackBuffer:任务堆栈内存
  25. //pulTimerTaskStackSize:任务堆栈大小

  26. void vApplicationGetTimerTaskMemory(StaticTask_t **ppxTimerTaskTCBBuffer,
  27.                                                                         StackType_t**ppxTimerTaskStackBuffer,
  28.                                                                         uint32_t *pulTimerTaskStackSize)
  29. {
  30.         *ppxTimerTaskTCBBuffer=&Timer_Task_TCB;
  31.         *ppxTimerTaskStackBuffer=Timer_Task_Stack;
  32.         *pulTimerTaskStackSize=configTIMER_TASK_STACK_DEPTH;
  33. }
e87dab93f71c8f6c2405f60e50ba24ba.png


tpgf 发表于 2025-4-8 13:52 | 显示全部楼层
空闲任务确保系统至少有一个任务在运行,这是RTOS连续调度循环的基础
heimaojingzhang 发表于 2025-4-9 21:41 | 显示全部楼层
空闲任务是RTOS(实时操作系统)内核在处理器不忙时自动创建并以最低优先级运行的特殊任务
keaibukelian 发表于 2025-4-9 23:37 | 显示全部楼层
空闲任务由RTOS内核自动创建,用户无需手动干预。当RTOS内核启动调度器时,如果未禁用空闲任务相关配置,内核会自动创建空闲任务
paotangsan 发表于 2025-4-10 19:11 | 显示全部楼层
空闲任务的优先级被设置为系统中最低,以确保所有用户定义的任务能够优先执行
renzheshengui 发表于 2025-4-10 21:00 | 显示全部楼层
当所有用户定义的任务都不处于运行状态时,空闲任务占用CPU。空闲任务会执行一些轻量级的操作,如低功耗模式的进入、系统统计信息的更新等
wowu 发表于 2025-4-10 22:49 | 显示全部楼层
空闲任务负责释放已删除任务的内存资源,防止内存泄漏
您需要登录后才可以回帖 登录 | 注册

本版积分规则

339

主题

2677

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部