- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FreeRTOSy移植
FreeRTOS 由Richard Barry 开发,是一个开源的、可移植的、小型的嵌入式实时操作
系统内核。FreeRTOS 既支持抢占式多任务,也支持协作式多任务。FreeRTOS 的主要
特性如下:
1. 实时性:FreeRTOS “可以”配置成为一个硬(Hard)实时操作系统内核。要
注意这里用的是“可以”,FreeRTOS 也可以配置为非实时型内核,甚至于部分
任务是实时性的,部分不是。这一点比uC/OS-II 要灵活。
2. 任务数量:FreeRTOS 对任务数没有限制,同一优先级也可以有多个任务。
这点上比uC/OS-II 好。
3. 抢占式或协作式调度算法:任务调度既可以为抢占式也可以为协作式。采用
协作式调度算法后,一个处于运行态任务除非主动要求任务切换(Yielding ),
否则是不会被调度出运行态的。
4. 任务调度的时间点:调度器会在每次定时中断到来时决定任务调度,同时外
部异步事件也会引起调度器任务调度。
5. 调度算法:任务调度算法首先满足高优先级任务最先执行,当多于1 个任务
具有相同的高优先级时,采用round robin 算法调度。
6. 任务间通信:FreeRTOS 支持队列和几种基本的任务同步机制。
1. 队列:任务间传递信息可以采用队列方式,FreeRTOS 实现的队列机制
传递信息是采用传值方式,因此对于传递大量数据效率有些低。但可以
通过传递指针的方式提高效率。中断处理函数中读写队列都是非阻塞型
的。任务中读写队列可以为阻塞型也可以配置非阻塞型。当配置为阻塞
型时可以指定一个阻塞的最大时间限(Timeout )。
2. 任务间同步:FreeRTOS 支持基本的信号量功能。FreeRTOS 采用队
列来实现信号量的功能,可以认为一个值为n 的信号量就是一个长度为
n 的队列,队列中每个元素的大小为0 。这样的队列并不会浪费宝贵的
内存空间。
3. 对于死锁(Deadlock)的处理:FreeRTOS 并没有实现一种可以完全
避免死锁的机制。只是通过指定一个阻塞的最大时间限(Timeout )来
减少死锁现象的发生。或者说是给出了当死锁现象发生时解锁的可能。
当然能不能真的解锁要依赖于使用者的处理代码是否合适。
4. 临界区:FreeRTOS 采用开关中断的方式实现临界区保护。任务代码中
临界区可以嵌套,FreeRTOS 会自动记录每个任务中临界区嵌套的层数。
5. 暂停调度:与进入临界区类似,FreeRTOS 可以通过暂时关闭任务调度
来保证任务代码不被更高优先级的其他任务打断,与临界区不同,关闭
任务调度并不会关闭中断,这样中断处理函数仍会照常的执行。
6. 内存分配:FreeRTOS 提供了多种内存动态分配的方法,具体程序中需
要选择其中一种。最简单的内存分配方式提供了一种非常简单的固定内
存分配算法,这种方式下只支持内存的分配,不支持分配内存的回收。
因此,任务建立后就不能被删除。其他几种内存分配算法支持分配内存
的回收,有的方法支持邻接内存块的合并,有些不支持。对我个人来说,
我还是比较欣赏uC/OS-II 中内存分配的方法,既保证了实时性,也具
有一定的灵活性。FreeRTOS 中提供的几种方式,实时性好的功能上有
缺陷,功能上完善的实时性却不好。我通常采用的方式是采用最简单的
内存固定分配算法,当需要动态释放时将uC/OS-II 中内存分配的代码
拿来用。
7. 优先级翻转:FreeRTOS 没有提供优先级继承机制或其他的避免优先级
翻转的方法。
配置FreeRTOS
FreeRTOS 是高度可配置的。所有的可配置项都在FreeRTOSConfig.h 文件中。每一个Demo 程序中都包含了一
个配置好的FreeRTOSConfig.h 文件,可以以Demo 程序中的FreeRTOSConfig.h 文件作为模板,在其基础上加
以修改。
下面先给出一个典型的FreeRTOSConfig.h 文件,然后再逐项加以说明。
[cpp] view plai
您可能关注的文档
- FGD产品介绍(社工软件).pdf
- FCI产品选型样本.pdf
- FH35-35使用说明书_环形.pdf
- Fisherr GX 三通控制阀和执行机构系统.pdf
- FEI (飞利浦)旗下Phenom飞纳台式扫描电镜手册.pdf
- flatpak简介.pdf
- Fibaro高级用户指南-中文版.pdf
- FJT泉州市天益机电F10.pdf
- FISHER定位器产品讲座.pdf
- FLO-2D使用手册-Workshop实例-睿驰原创.pdf
- 甘肃省XB师范大学附属中学2025届高三上学期一模诊断考试地理答案.doc
- 甘肃省XB师范大学附属中学2025届高三上学期一模诊断政治含解析.doc
- 安徽省皖江名校2024-2025学年高一上学期12月联考英语无答案.doc
- 2025年1月八省联考高考综合改革适应性测高三化学陕西山西宁夏青海卷无答案.doc
- 2025年1月八省联考高考综合改革适应性测高三化学四川卷无答案.doc
- 2025年1月八省联考高考综合改革适应性测高三政治陕西山西宁夏青海卷无答案.doc
- 2025年1月内蒙古自治区普通高等学校招生考试适应性测试(八省联考)历史无答案.doc
- 2025年1月内蒙古自治区普通高等学校招生考试适应性测试(八省联考)历史含解析.doc
- 2025年1月四川省普通高等学校招生考试适应性测试(八省联考)历史含解析.doc
- 2025年1月四川省普通高等学校招生考试适应性测试(八省联考)政治无答案.doc
文档评论(0)