打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
FREERTOS之系统移植
2009-5-13
http://bluefish.blog.51cto.com/214870/158398

首先声明,这篇文章忘了是从什么地方抓过来的前人的总结,如果原作看到的话,可以给我留个地址,我再加上,不好意思
          FreeRTOS作为开源的轻量级实时性操作系统,不仅实现了基本的实时调度、信号量、队列和存储管理。FreeRTOS的实现主要由list.cqueue.ccroutine.ctasks.c 4个文件组成。list.c 是一个链表的实现,主要供给内核调度器使用;queue.c 是一个队列的实现,支持中断环境和信号量控制;croutine.c task.c是两种任务的组织实现。对于croutine,各任务共享同一个堆栈,使RAM的需求进一步缩小,但也正因如此,他的使用受到相对严格的限制。而task则是传统的实现,各任务使用各自的堆栈,支持完全的抢占式调度。FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、 优先级最高的任务先运行。FreeRT0S内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间freertos既可以配置为可抢占内核也可以配置为不可抢占内核。当FreeRTOS被设置为可剥夺型内核时,处于就绪态的高优先级任务能剥夺低优先级任务的CPU使用权,这样可保证系统满足实时性的要求;当FreeRTOS被设置为不可剥夺型内核时,处于就绪态的高优先级任务只有等当前运行任务主动释放CPU的使用权后才能获得运行,这 样可提高CPU的运行效率。
FreeRTOS的主要功能可以归结为以下几点:
1) 
优先级调度、相同优先级任务的轮转调度,同时可设成可剥夺内核或不可剥夺内核
2) 
任务可选择是否共享堆栈(co-routines & tasks),并且没有任务数限制
3) 
消息队列,二值信号量,计数信号量,递归互斥体
4) 
时间管理
5) 
内存管理
         UC/OSII一样,FreeRTOSSTM32的移植大致由3个文件实现,一个.h文件定义编译器相关的数据类型和中断处理的宏定义;一个.c文件实现任务的堆栈初始化、系统心跳的管理和任务切换的请求;一个.s文件实现具体的任务切换。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
主流嵌入式操作系统(RTOS)有哪些?看这14种
图解FreeRTOS 原理系列之任务管理器基本框架
掌握这五大嵌入式操作系统,你就是STM32牛人
uc-OS和linux
uCOS II内核调度分析
FreeRTOS 在STM32上的移植 V1.0 - 伟研科技
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服