freertos多任务
时间: 2023-08-04 15:08:02 浏览: 89
FreeRTOS-任务管理
FreeRTOS是一个实时操作系统,支持多任务的并发执行。在FreeRTOS中,任务存在四种状态,分别是运行态、就绪态、阻塞态和挂起态。\[2\]
1. 运行态:当一个任务获得CPU的使用权并正在执行时,它处于运行态。
2. 就绪态:当一个任务已经可以被执行,但当前还未被执行(有相同或更高优先级的任务正在执行),它处于就绪态。
3. 阻塞态:当一个任务因为延时一段时间或等待外部事件发生而无法执行时,它处于阻塞态。任务可以通过调用函数vTaskDelay()进行延时,或者等待队列、信号量、事件组、通知等外部事件。处于阻塞态的任务无法被运行,直到阻塞条件满足或超时。
4. 挂起态:任务可以通过函数vTaskSuspend()进入挂起态,通过函数vTaskResume()退出挂起态。处于挂起态的任务无法被运行,类似于阻塞态。
在多任务系统中,任务的优先级起到了重要的作用。高优先级的任务可以抢占低优先级任务的CPU使用权,类似于中断的抢占。而优先级相同的任务则会轮流运行一段极短的时间,从宏观角度看,产生了同时运行的错觉。这种调度方式可以提高系统的实时性。\[3\]
总结起来,FreeRTOS是一个支持多任务的实时操作系统,任务可以处于运行态、就绪态、阻塞态和挂起态。任务的优先级决定了任务的执行顺序,高优先级的任务可以抢占低优先级任务的CPU使用权。这种调度方式可以提高系统的实时性。
#### 引用[.reference_title]
- *1* *2* *3* [FreeRTOS多任务系统](https://blog.csdn.net/weixin_52849254/article/details/131024160)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文