想学FreeRTOS实时操作系统的看过来,实用的入门教程

想学FreeRTOS实时操作系统的看过来,实⽤的⼊门教程
FreeRTOS是⼀个迷你的实时操作系统内核。作为⼀个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满⾜较⼩系统的需要。
眼部凝露由于RTOS需占⽤⼀定的系统资源(尤其是RAM资源),只有µC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在⼩RAM单⽚机上运⾏。
相对µC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以⽅便地移植到各种单⽚机上运⾏。
在学习FreeRTOS之前,先得了解了解它,⼀定要搞清楚FreeRTOS, SafeRTOS和OpenRTOS之间的关系。
1. 先说FreeRTOS和OpenRTOS电镀铜包钢
FreeRTOS和OpenRTOS的共享相同的源码,只是 OpenRTOS 为 FreeRTOS 披上’commercial and legal wrapper”
⽤户从FreeRTOS更新到OpenRTOS主要有两个原因:
1.1 为了克服FreeRTOS修改版的GPL许可证限制。
1.2 为了获得额外的服务,如专业的技术⽀持,⾼质量的中间件,培训,咨询和相应的⼯具
2. FreeRTOS修改版的GPL许可证限制
修改版的GPL许可证有如下⼏个缺陷(There are several reasons why developers may find the FreeRTOS modified
GPL licence restrictive.)
2.1 公司可能有⼀个全⾯禁⽌在他们的项⽬中使⽤GPL授权的软件。
2.2 他们可能需要IP赔偿。
2.3 他们可能更愿意在他们的产品中,避免FreeRTOS的许可证要求承认他们使⽤FreeRTOS的。
⼀个OPENRTOS许可证删除了修改后的GPL的限制,提供知识产权保障,并允许开发者保持匿名。
玩具车漂移
3. FreeRTOS和SafeRTOS
SafeRTOS也是基于FreeRTOS的,但是和FreeRTOS不同,被安全⽅⾯的专家做了重新设计,下⾯是SafeRTOS获得的安全认证
电力电子电容器
SAFERTOS was initially certified in 2007 by TüV SüD to IEC 61508-3 SIL 3, the highest level possible for a software only component.Today SAFERTOS has grown to be a leading safety critical RTOS solution supporting a wide range of international design safety standards, including:
4. 学习FreeRTOS前的准备⼯作
这⾥只要做好两点就可以了。
5.2, 官⽹有FreeRTOS每个函数的API说明,已及相应API的例⼦,其实源码的.h⽂件⾥⾯也有⼤部分函数的使⽤例⼦
5. 启动开发
FreeRTOS可以被移植到很多不同架构的处理器和编译器。每⼀个RTOS移植都附带⼀个已经配置好的演⽰例程,可以⽅便快速启动开发。更好的是,每个演⽰例程都附带⼀个说明⽹页,提供如何定位RTOS演⽰⼯程源代码、如何编译演⽰例程、如何配置硬件平台的全部信息。
公牛辅助演⽰例程说明⽹页还提供基本的RTOS移植细节信息,包括如何编写FreeRTOS兼容的中断服务例程,不同架构的中断处理会稍有不同。
通过下⾯的简单说明,可以在⼏分钟内运⾏RTOS。
1)查相关⽂档页
2)获取RTOS源代码
到FreeRTOS官⽅⽹站下载源码,下载包包含RTOS内核源码和官⽅移植演⽰⼯程。解压缩后放到合适的⽬录下。
每⼀个RTOS移植包都附带有预先配置好的演⽰例程,已经创建好了所有必须的RTOS源⽂件并包含了必须的RTOS头⽂件。推荐在提供的演⽰例程的基础上进⾏⾃⼰的FreeRTOS应⽤编程。
3)FreeRTOS源码⽬录结构
FreeRTOS下载包中包含每个处理器移植和演⽰例程的源码。将所有移植包放⼊⼀个下载⽂件中⼤⼤简化了分类处理,但是下载包中的⽂件数量也多的惊⼈!⽆论如何,⽬录结构还是⾮常简单的,并且FreeRTOS实时内核仅仅只有3个⽂件(如果需要,还有⼀些附加⽂件,⽐如软件定时器、事件组以及协程)。
下载包⽬录包含两个⼦⽬录:FreeRTOS和FreeRTOS-Plus。如下所⽰:
· FreeRTOS-Plus 包含FreeRTOS+组件和演⽰例程;
· FreeRTOS 包含FreeRTOS实时内核源⽂件和演⽰例程。
FreeRTOS-Plus⽬录树包含多个⾃述⽂件(Readme)。接下来本⽂只描述FreeRTOS内核的核⼼源⽂件和演⽰例程,它们⼜被分成两个主要的⼦⽬录,如下所⽰:
RTOS代码的核⼼包含在三个⽂件中:tasks.c、queue.c、list.c。这三个⽂件位于FreeRTOS/Source⽬录。在该⽬录下还包含三个可选的⽂件:timers.c、event_groups.c、croutine.c,分别实现软件定时、事件组和协程功能。FreeRTOS/Source⽬录结构如下所⽰:
每个⽀持的处理器架构需要⼀⼩段与处理器架构相关的RTOS代码。这个是RTOS移植层,它位于
FreeRTOS/Source/Portable/[相应编译器]/[相应CPU架构]⼦⽬录。
对于FreeRTOS,堆栈设计也属于移植层。
FreeRTOS/Source/portable/MemMang⽬录下heap_x.c⽂件给出了多种堆栈⽅案,后续⽂章将会详细介绍堆栈操作。移植层⽬录举例:
· 如果在GCC编译器下使⽤TriCore1782:TriCore特定⽂件(port.c)位于
FreeRTOS/Source/Portable/GCC/TriCore_1782⽬录下。FreeRTOS/Source/Portable ⼦⽬录下的所有⽂件,除了FreeRTOS/Source/Portable/MemMang⽬录外都可以忽略或删除。
· 如果在IAR编译器下使⽤Renesas RX600:RX600特定⽂件(port.c)位于FreeRTOS/Source/Portable/IAR/RX600⽬
· 如果在IAR编译器下使⽤Renesas RX600:RX600特定⽂件(port.c)位于FreeRTOS/Source/Portable/IAR/RX600⽬录下。FreeRTOS/Source/Portable ⼦⽬录下的所有⽂件,除了FreeRTOS/Source/Portable/MemMang⽬录外都可以忽略或删除。
FreeRTOS下载包中还包含各种处理器架构和编译器的演⽰例程。⼤多数的演⽰例程代码对所有移植都是通⽤的,位于FreeRTOS/Demo/Common/Minimal⽬录。FreeRTOS/Demo/Common/Full⽬录下的是历史遗留代码,仅⽤于PC。FreeRTOS/Demo⽬录结构如下所⽰:
FreeRTOS/Demo⽬录下剩余的⼦⽬录包含预先配置好的⼯程,可以⽤于构建个⼈演⽰例程。⼦⽬录的命名与移植平台和编译器相关。每⼀个RTOS移植包都有⾃⼰的说明⽂档。
演⽰例程⽬录举例:
· 如果以英飞凌TriBoard开发板硬件构建TriCoreGCC演⽰例程:TriCore演⽰例程⼯程⽂件位于
FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC⽬录。⽬录FreeRTOS/Demo下的所有⼦⽬录(Common⽬录除外)都可以忽略或删掉。
· 如果以RX62N硬件构建Renesas RX600 IAR演⽰例程:IAR⼯程⽂件位于FreeRTOS/Demo/RX600_RX62N-
RDK_IAR⽬录。⽬录FreeRTOS/Demo下的所有⼦⽬录(Common⽬录除外)都可以忽略或删掉。血浆分离器
4)编译⼯程
根据上⼀节FreeRTOS源码⽬录结构说明的RTOS演⽰⼯程的所在的位置,打开并编译演⽰⼯程。
5)运⾏演⽰例程
演⽰例程附带的说明⽹页会介绍如何配置硬件、下载程序和执⾏演⽰例程。说明⽹页还会提供演⽰例程的功能信息,这样你就可以判断演⽰例程执⾏是否正确。

本文发布于:2024-09-21 18:54:23,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/262310.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:移植   例程   包含   下载   架构
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议