• 正文
  • 相关推荐
申请入驻 产业图谱

FreeRTOS是在什么样的背景下发展起来的?它又为什么能如此火爆?

13小时前
308
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

微信公众号 | strongerHuang

2000年左右,全球MCU市场还是以51单片机为主,那个时候32位MCU刚刚兴起还没有普及,而应用于MCU的RTOS大多都需要商业收费。

于是,2003年,一位英国工程师 Richard Barry推出了免费的FreeRTOS。聪明的你肯定猜到了FreeRTOS这个名称的由来,没错,就是主打一个Free(自由、免费)。

FreeRTOS问世的那个年代,单片机的性能和存储资源都还是比较有限,于是,FreeRTOS一个特点就是:轻量级、可裁剪!

那个时候,51单片机是主流,但32位MCU已经开始慢慢发展起来。同时,市场的需求也在变化,设备功能越来越复杂,传统的裸机循环编程【while(1)+中断】模式难以满足这些需求。

所以,FreeRTOS设计的目标就不能只是面向于51单片机,还要考虑未来主流的32位单片机、更复杂的应用场景等,同时,为了规范,代码还要严格遵循 MISRA-C 标准。

于是,在那样的情况下,作者Richard Barry推出 FreeRTOS V1.0初始版本,其内核只有 3 个 .c 文件:tasks.c、list.c 和 queue.c源代码文件。

┌─────────────────────────────────────────────────┐│                   tasks.c                        ││  任务创建/删除/调度/优先级管理/上下文切换入口      ││          │                                       ││          ▼                                       ││  ┌──────────────┐    ┌──────────────┐            ││  │   list.c     │◄──►│  queue.c     │            ││  │ 双向循环链表  │    │ 队列/信号量   │            ││  │ (就绪列表)   │    │ (同步/通信)   │            ││  │ (阻塞列表)   │    │              │            ││  │ (事件列表)   │    │              │            ││  └──────────────┘    └──────────────┘            │└─────────────────────────────────────────────────┘         │         ▼   portable/[compiler]/[arch]/port.c   ← 移植层(架构相关,不算内核)   portable/MemMang/heap_x.c          ← 内存管理(V1.0时只有heap_1/2)

V1.0 的设计哲学:够用就好,绝不多写一行代码。 这也是 FreeRTOS 能跑在几KB Flash 上的根本原因。作者Richard Barry 的原话:"Small, simple, easy to understand"(小、简单、易理解)。

现在大家看到的timers.c、heap_1~5.c、port.c等这些源代码文件,都是后面逐渐增添的。

FreeRTOS发展时间线

2003年  Richard Barry 发布 FreeRTOS v1.0(GPLv2)   ↓2008年  Amazon 开始在内部使用 FreeRTOS   ↓2017年  Amazon 正式收购 FreeRTOS   ↓2018年  许可证改为 MIT,发布 V10.0   ↓2020年  首个 LTS 版本发布(202012.00 LTS)   ↓2023年  全球RTOS市场份额 ~38%,Cortex-M采用率 >60%   ↓2026年  已成为 ARM Cortex-M 生态的"事实标准"

为什么能如此火爆?

① 极致轻量——"小到不可思议"

指标 数据
内核代码 仅 3个C文件
ROM占用 最小 4~9 KB
RAM占用 不到 1 KB
最小配置 几KB Flash的单片机都能跑

对比:μC/OS-II 内核约6~10KB ROM,VxWorks 更是动辄几百KB。FreeRTOS 做到了"能省则省"。


② MIT许可证——"真正的自由"

这是FreeRTOS最具杀伤力的武器之一:

许可证 商业使用 可闭源衍生 版权费
GPLv2(2018年前) ❌ 必须开源 免费
MIT(2018年后) ✅ 可以闭源 免费

2017年亚马逊收购后,将许可证从 GPLv2 改为 MIT,这意味着:

 公司做商业项目完全没有法律压力,修改源码后可以闭源销售。这直接打掉了商业RTOS最大的竞争壁垒。


③ 超强可移植性——"一套代码,通吃天下"

a、纯 ANSI C 编写,兼容 GCC、Keil、IAR、MPLAB 等所有主流编译器b、已移植到

40+ 处理器架构:ARM Cortex-M/R、RISC-V、Xtensa(ESP32)、8051、AVR、PIC32、MIPS……c、从8位到32位MCU全覆盖

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录