
01. 什么是FreeRTOS FreeRTOS的名字分为两部分:Free和RTOS,Free是免费的、自由的、不收约束的意思。RTOS全称是Real Time Operating System,中文名就是实时操作系统。FreeRTOS就是一个免费的RTOS类系统。RTOS并不是指一个确定的系统,而是指一类系统,比如UCOS、FreeRTOS、RTX、RT-Thread等等都属于RTOS类操作系统。 操作系统允许多个任务同时运行,这个叫做多任务,实际上,一个处理器核心在某一个时刻只能运行一个任务。操作系统中任务调度器的责任就是决定在某一时刻究竟运行哪个任务,任务调度在各个任务之间的切换非常快。这就给人们造成同一个时刻有多个任务同时运行的错觉。 操作系统的分类方式可以由任务调度器的工作方式决定,比如有的操作系统给每个任务分配同样的运行时间,时间到了就轮到下一个任务,Unix操作系统就是这样的。RTOS的任务调度器被设计为可预测的,这正是嵌入式实时操作系统所需要的,实时环境中要求操作系统必须对某一个事件作出实时的响应,因此系统任务分配一个任务优先级,任务调度器就可以根据此优先级来决定下一刻应该运行哪个任务。 FreeRTOS是RTOS系统的一种,FreeRTOS十分的小巧,可以再资源有限的微控制器中运行。从文件数量上来看FreeRTOS要比UCOSII和UCOSSIII小的多。% e* ?9 L; C6 L g' u! D6 g, J0 ?. X+ ` 02. 为什么选择FreeRTOS RTOS类系统非常多,但是为什么选择FreeRTOS呢?并且FreeRTOS的资料少,而且大多数是英文的。具体原因如下:( e4 R' l2 n* J$ I. ? 1.FreeRTOS免费,这个是非常重要的,UCOS是要收费的,学习RTOS系统的话UCOS是首选,但是做产品的话就要考虑一下成本了。显而易见,FreeRTOS就是一个很好的选择,当然也可以选择其它的免费的RTOS系统。- I" a1 A8 t8 l0 w% y! @/ y 2.许多半导体厂家产品的SDK包就是用FreeRTOS作为其操作系统,尤其是WIFI、蓝牙这些带协议栈的芯片或者模块。) N, t p' U1 Y4 @ ! Y$ Z# W t( }5 e 3.许多软件厂商是用FreeRTOS做本公司软件的操作系统,不如著名的TouchGFX,其所有的例程都是基于FreeRTOS操作系统的。ST公司的所有要使用RTOS系统的例程也均采用了FreeRTOS。, \! S" d5 Z& s : M( ?3 V$ x% r 4.简单,FreeRTOS的文件数量很少,和UCOS系统相比少很多。3 W$ h1 U# f m$ B $ H0 r% p: R9 r# Z1 z0 J 5.文档相对比较齐全,在FreeRTOS的官网上可以找到所需的文档和源码,但是所有的文档都是英语版本的。 ' ]% m# Q& n: `/ o9 E 6.FreeRTOS被移植到了很多不同的微处理器上,不如我们使用的STM32F1, F2, F3, F4和最新的F7都有移植,这个极大方便了我们的学习和使用。6 W; j6 Z2 Z& `& K, E5 d 7.社会占用量高,EEtimes统计的近几年的RTOS系统占有量中FreeRTOS已经跃升到第一位了。 - Z8 S/ y, n2 d1 b" H# b, I& n& p 2010和2011年RTOS使用榜 9 j" E! P0 A) G: O, v ![]() " A! z4 @/ `0 `- m 2012和2013年RTOS使用榜" U5 s8 w8 Z5 ^/ K7 T- n, G. ` ![]() + ~( E+ `0 G* H4 h. E; l9 Z5 t 2013年和2014年RTOS使用榜* ?# v! D) F; S( x! H( N2 e4 ~# J) O) a & w) e6 o! a$ i5 n3 G) O; p ![]() 2014年和2015年RTOS使用榜; C H5 K2 [ G- q( C# d7 R9 p) w ![]() ! f% h, h8 ?# c$ E( I+ I' ^) \ 2017年RTOS使用榜 ![]() 2019年RTOS使用榜8 ?' r: j* _6 J& C' p+ I& v+ l _ ![]() - ^+ F: C8 H: b7 t+ a3 U 03. FreeRTOS特点" Y3 y; u3 Y1 {; o 7 o+ B, X( K0 i" g+ [, w ![]() f# y7 {, @" m- v: y 04. FreeRTOS商业许可7 l( f u/ x8 l% I, T+ p FreeRTOS衍生出来了另外两个系统:OpenRTOS和SafeRTOS。FreeRTOS开源许可协议允许在商业应用中使用FreeRTOS系统,并且不需要公开你的私有代码。如果有以下需求的话可以使用OpenRTOS:0 m t% ]4 c' L6 B) ?* v 你不能接受FreeRTOS的开源许可协议条件+ Y* Y! n+ P+ P 你需要技术支持 想获得开发帮助2 T6 R* L2 a0 l8 y 需要法律保护或者其它的保护 使用OpenRTOS需要准守商业协议,FreeRTOS的开源许可和OpenRTOS的商业许可区别如下:9 k: a- ^/ m3 p2 R+ H# M ![]() # C+ A( Z/ f0 y7 _ & g( n% Y4 R; d) ^, @9 p % H) q" q( g1 O |
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
OpenBLT移植到STM32F405开发板
为什么要先开启STM32外设时钟?
【STM32MP157】从ST官方例程中分析RPMsg-TTY/SDB核间通信的使用方法
【经验分享】STM32实例-RTC实时时钟实验④-获取RTC时间函数与中断服务函数
STM32 以太网 MAC Loopback 的实现
STM32功能安全设计包,助力产品功能安全认证
基于STM32启动过程startup_xxxx.s文件经验分享
HRTIM 指南
ST 微控制器电磁兼容性 (EMC) 设计指南