FreeRTOS 学习笔记 3 —— 任务状态机之阻塞
来源:互联网 发布:福州司法拍卖淘宝网 编辑:程序博客网 时间:2024/05/29 23:23
FreeRTOS 会创建很多任务,每个任务有相同或不同的优先级,如果让任务全都处于准备执行状态,那么只有优先级最高的任务一直在执行,优先级低的任务全都被 “饿死” 了。为了解决这个问题,添加了 “阻塞状态”。
任务分为 “运行态” 和 “非运行态”
非运行态 包含 阻塞状态、挂起状态 和 就绪状态。
如果在一个任务运行结束时,所有任务都处于 就绪状态,那只有优先级最高的任务能运行。所以加入阻塞状态。
void vTaskDelay( portTickType xTicksToDelay );
xTicksToDelay ——延迟多少个心跳周期。调用该延迟函数的任务将进入阻塞态,经延迟指定的心跳周期数后,再转移到就绪态。举个例子,当某个任务调用vTaskDelay( 100 )时,心跳计数值为10,000,则该任务将保持在阻塞态,直到心跳计数计到10,100。常数portTICK_RATE_MS 可以用来将以毫秒为单位的时间值转换为以心跳周期为单位的时间值。
void vTaskDelayUntil( portTickType * pxPreviousWakeTime, portTickType xTimeIncrement );
设定周期运行绝对时间,用来让任务周期运行的更精确,比使用 vTaskDelay 延迟精确。
0 0
- FreeRTOS 学习笔记 3 —— 任务状态机之阻塞
- FreeRTOS学习笔记——创建任务
- FreeRTOS学习笔记——任务延时
- FreeRTOS学习笔记——任务删除 vTaskDelete() API
- FreeRTOS 学习笔记 2 —— 创建任务
- FreeRTOS学习之任务通知
- FreeRTOS学习笔记——任务间使用队列同步数据
- FreeRTOS学习笔记——链表
- FreeRTOS学习笔记——SysTick中断
- FreeRTOS学习笔记——精准延时
- FreeRTOS学习笔记——二值型信号量
- FreeRTOS学习笔记——互斥型信号量
- FreeRTOS入门学习记录1——任务管理
- FreeRTOS学习及移植笔记之一:开始FreeRTOS之旅
- HEXIWEAR---FreeRTOS之任务
- FreeRTOS之任务基础知识
- verilog学习笔记——三段式状态机
- ESP8266_RTOS_SDK学习笔记之 FreeRTOS移植浅析
- jsp学习笔记
- 宠辱不惊,闲看庭前花开花落;去留无意,漫随天外支卷云舒。【菜根谭】
- 抽象类 接口 匿名类的区别
- no drawer view found with gravity RIGHT(Android实现抽屉从右面滑出) 解决办法
- Unity3D的Socket通信
- FreeRTOS 学习笔记 3 —— 任务状态机之阻塞
- UISearchBar 点击取消回到原来位置时会跳动的解决方法
- Masonry介绍与使用实践:快速上手Autolayout
- Android调试命令总结
- js/jquery操作div显示或隐藏
- MyEclipse项目如何导入jar包
- 关于指针
- Java c标签的简单使用
- exe重定位清除,主要让WIN7的动态基址不起作用