-
FreeRTOS操作系统中文入门手册
2020-10-11 09:32:26 类别:FreeRTOS
-
扫二维码手机浏览
资源介绍
给网友们整理FreeRTOS类学习资源,由厍丽芳测试纠错,内容涉及到FreeRTOS、操作系统、入门手册、FreeRTOS的内容,已被116人关注,同类资源中评分为9.3分。
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为10.3.1版。
FreeRTOS是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
任务调度机制是嵌入式实时操作系统的一个重要概念,也是其核心技术。对于可剥夺型内核,优先级高的任务一旦就绪就能剥夺优先级较低任务的CPU使用权,提高了系统的实时响应能力。不同于μC/OS-II,FreeRTOS对系统任务的数量没有限制,既支持优先级调度算法也支持轮换调度算法,因此FreeRTOS采用双向链表而不是采用查任务就绪表的方法来进行任务调度。
系统定义的链表和链表节点数据结构如下所示:
//定义链表结构 typedef struct xLIST{ unsigned portSHORPT usNumberOfItems; //usNumberOfItems为链表的长度,为0表示链表为空 volatile xListItem *pxHead; //pxHead为链表的头指针 volatile xListItem *pxIndex; //pxIndex指向链表当前结点的指针 volatile xListItem xListEnd; //xListEnd为链表尾结点 }xList; //定义链表结点的结构 struct xLIST_ITEM{ port Tick type; //port Type为时针节拍数据类型 xItem Value; //xItem Value的值用于实现时间管理,可根据需要选择为16位或32位 volatile struct xLIST_ITEM *pxNext; //指向链表的前一个结点 void *pvOwner; //指向此链表结点所在的任务控制块 void *pvContainer; //指向此链表结点所在的链表 };
以上就是本次关于本资源的介绍和部分内容,我们还整理了以往更新的其它相关资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。
下载地址
FreeRTOS相关资源
学习心得
欢迎发表评论:
- 最新更新
-
1
Java编程实战宝典 PDF电子书
类别:Java编程
-
2
自然语言处理原理与技术实现 PDF电子书
类别:自然语言
-
3
Vert.x应用开发实例教程 PDF电子书
类别:Vert.x
-
4
深入理解php:高级技巧、面向对象与核心技术(第3版) PDF电子书
类别:php
-
5
PHP经典实例(第3版) PDF电子书
类别:PHP实例
-
6
Django开发宝典 PDF电子书
类别:Django
-
7
Learning PHP设计模式 PDF电子书
类别:PHP编程
-
8
Java高并发编程详解:多线程与架构设计 PDF电子书
类别:Java编程
-
9
教孩子学编程:Python语言版 PDF电子书
类别:儿童编程
- 资料推荐
-
- 10-0816/32位微机原理:汇编语言及接口技术 课后答案
- 02-28《工业控制网络安全技术与实践》配书资源
- 01-10HTML5与CSS3权威指南 PDF电子书
- 09-14分布式协议与算法实战:攻克分布式系统设计的关键难题 计算机书籍
- 12-15HarmonyOS入门宝典 2.0 PDF文档
- 04-09《Unity开发实战》源代码
- 10-27响应式网页设计:Bootstrap开发速成 PDF电子书
- 02-05尽在双11:阿里巴巴技术演进与超越 PDF电子书
- 05-31精通Windows应用开发 PDF电子书
- 02-01玩转虚拟机:基于VMware+Windows PDF电子书
什么情况下可以用 FreeRTOS ?
单片机也要用操作系统?如果以日常用的Windows, Linux, BSD这些,甚至是DOS,来代表操作系统的话,在单片机上运行操作系统时候个很荒诞的想法——因为对大多数单片机,RAM实在太少了。而 FreeRTOS 并不是要提供一个在单片机上运行软件的平台,把软件一个个安装到它上面,供用户选择运行什么,它没有用户界面;它不是一个管家,也不带任何硬件驱动程序,也没有文件系统服务提供。FreeRTOS只是一个操作系统内核,它首先提供了操作系统最重要的特性:任务调度。
也就是说,有了FreeRTOS,在单片机上实现多任务会容易一些。这里至少有两层含义,一是多任务是否一定要用RTOS才可以实现? 当然不是。对于单片机开发来讲,所有系统资源都是你的,在不同中断服务里面处理不同的任务并不是很困难的事情。第二,是否没有多任务就完全用不着RTOS? 这也得看具体情况,如何界定“任务”的概念了,一件复杂的事情在程序中也有可能划分为几个任务来处理。
开源的免费的小型实时内核,支持的处理器内核:ARM7,ARM9,CortexM3,ATMEL AVR32,AVR,MSP430等
功能介绍:
FreeRTOS内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU总是让处于就绪态的、优先级最高的任务先运行。
FreeRT0S内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU的使用时间。
任务可以选择是否共享堆栈,并且任务没有数量限制。
消息队列,二值信号量,计数信号量。
时间管理
内存管理
FreeRTOS的内核可根据用户需要设置为可剥夺型内核或不可剥夺型内核。当FreeRTOS被设置为可剥夺型内核时,处于就绪态的高优先级任务能剥夺低优先级任务的CPU使用权,这样可保证系统满足实时性的要求;当FreeRTOS被设置为不可剥夺型内核时,处于就绪态的高优先级任务只有等当前运行任务主动释放CPU的使用权后才能获得运行,这样可提高CPU的运行效率。
嵌入式系统基本概念:多任务,调度,上下文切换,实时应用和调度。
FreeRTOS与UCOS比较:
1:与ucosii不同,它是free的,ucosii不是free的,虽然它的代码是公开的。
2:它支持同优先级任务时间片调度,轮换调度算法,UCOS不允许任务使用相同优先级。
3:任务数目FREERTOS没有限制,UCOS有限制,一般64个。
4:freertos既可以配置为可抢占内核也可以配置为不可抢占内核。 UCOS是可抢占。
5:内核ROM和耗费RAM都比uCOS 小,特别是RAM。 这在单片机里面是稀缺资源,uCOS至少要5K以上,而freeOS用2~3K也可以跑的很好。
6:freeRTOS 可以用协程(Co-routine),减少RAM消耗(共用STACK)。uCOS只能用任务(TASK,每个任务有一个独立的STACK)。
7:比uSOS简单,任务间通讯freeRTOS只支持Queque, Semaphores, Mutex。 uCOS除这些外,还支持Flag, MailBox.
8:uCOS可靠性更高,而且耐优化,freeRTOS 在我设置成中等优化的时候,就会出问题。
9:freertos的任务挂起与ucosii也不大一样。它把 所有挂起的任务加到xSuspendedTaskList中,而且一旦调用vTaskSuspend()函数挂起一个任务,该任务就将从所有它原先连入的链表中删除(包括就绪表,延时表和它等待的事件链表),也就是说,和 ucosii不同,一旦一个任务被挂起,它将取消先前它的延 时和对事件的等待。ucosii中是不同的,在ucosii里 面一个任务被挂起仅仅是把任务的状态或上一个OS_STAT_SUSPEND并从就绪表中删除,如果先前这个任务正在等待某事件,则并不取消等待。
FreeRTOS是一个迷你操作系统内核的小型嵌入式系统。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。
功能和特点
混合配置选项
提供一个高层次的信任代码的完整性
目的是小,简单易用
以开发C,非常便携代码结构
支持两项任务和共同例程
强大的执行跟踪功能
堆栈溢出检测
没有软件任务的限制数量
没有软件优先事项的限制数量
没有施加的限制,优先转让,多个任务可以分配相同的优先权
队列,二进制信号量,计数信号灯和递归通信和同步的任务
Mutexes优先继承权
免费开发工具
免费嵌入式软件的源代码
从一个标准的Windows主机交叉发展