您现在的位置是:首页 > 技术资料 > FreeRTOS进程管理
推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

FreeRTOS进程管理

更新时间:2019-10-22 21:20:57 大小:41K 上传用户:xuzhen1查看TA发布的资源 标签:freertos进程管理 下载积分:1分 评价赚积分 (如何评价?) 收藏 评论(0) 举报

资料介绍

reertos是一个轻量级的rtos,它目前实现了一个微内核,并且port 到arm7,avr,pic18,coldfire等众多处理器上:目前已经在tos的市场上占有不少的份额。它当然不是一个与vxworks之类的tos竞争的操作系统,它的目标在于低性能小RAM的处理器上。整个系统只有3个文件,外加上port的和处理器相关的两个文件,实现是很简洁的。

与ucosi不同,它是free的,ucosi不是free的,虽然它的代码是公开的。FreeRTOS提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理。FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。FreeRTOS内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。这一点是和ucosi不同的。

另外一点不同是freertos既可以配置为可抢占内核也可以配置为不可抢占内核。当FreeRTOS被设置为可剥夺型内核时,处于就绪态的高优先级任务能剥夺低优先级任务的CPU使用权,这样可保证系统

满足实时性的要求;当FreeRTOS被设置为不可剥夺型内核时,处于就绪态的高优先级任务只有等当前运行任务主动释放CPU的使用权后才能获得运行,这样可提高CPU的运行效率。

这篇文章是以freertosv5.0版本的代码为例子分析下它的任务管理方面的实现。时间关系可能没有太多时间写的很详细了。


部分文件列表

文件名 大小
FreeRTOS进程管理.pdf 41K

部分页面预览

(完整内容请下载后查看)
freertos 是一个轻量级的 rtos目前实现了一个微内核, 并且 port arm7, avr, pic18, coldfire  
等众多处理器上;目前已经在 rtos 的市场上占有不少的份额。它当然不是一个与 vxworks  
之类的 rtos 竞争的操作系统,它的目标在 于低性能小 RAM 的处理器上。整个系统只有  
个文件,外加上 port 的和处理器相关的两个文件,实现是很简洁的。  
3
ucosii 不同,它是 free ucosii 不是 free 的,虽然它的代码是公开的。 FreeRTOS提供的  
功能包括:任务管理、时间管理、信号量、消息队列、内存管理。  
级调度算法, 每个任务可根据重要程度的不同被赋予一定的优先级,  
FreeRTOS内核支持优先  
CPU总是让处于就绪态  
的、 优先级最高的任务先运行。  
务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先  
级的任务共享 CPU的使用时间。这一点是和 ucosii 不同的。  
FreeRT0S内核同时支持轮换调度算法,系统允许不同的任  
另外一点不同是 freertos 既可以配置为可抢占内核也可以配置为不可抢占内核。  
被设置为可剥夺型内核时, 处于就绪态的高优先级任务能剥夺低优先级任务的  
这样可保证系统  
FreeRTOS  
CPU使用权,  
满足实时性的要求;当  
FreeRTOS被设置为不可剥夺型内核时,处于就绪态的高优先级任务  
只有等当前运行任务主动释放  
CPU的使用权后才能获得运行, 这 样可提高 CPU的运行效率。  
这篇文章是以 freertos v5.0 版本的代码为例子分析下它的任务管理方面的实现。时间关系可  
能没有太多时间写的很详细了。  
1.链表管理  
freertos 里面的任务管理, queue,semaphore 管理等都借助于双向链表,它定义了个通用的  
数据结构  
struct  
xLIST_ITEM  
{
portTickType xItemValue; // 链表节点的数据项,通常用在任务延时,表示  
// 一个任务延时的节拍数  
volatile struct xLIST_ITEM * pxNext; // 通过这两个成员变量将所有节点  
volatile struct xLIST_ITEM * pxPrevious;// 链接成双向链表  
void * pvOwner; // 指向该 item 的所有者,通常是任务控制块  

全部评论(0)

暂无评论