当前位置: 首页 > news >正文

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

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/2V1.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.0GPLv2 ↓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 KBRAM占用不到1 KB最小配置几KB Flash的单片机都能跑对比μC/OS-II 内核约6~10KB ROMVxWorks 更是动辄几百KB。FreeRTOS 做到了能省则省。② MIT许可证——真正的自由这是FreeRTOS最具杀伤力的武器之一许可证商业使用可闭源衍生版权费GPLv22018年前✅❌ 必须开源免费MIT2018年后✅✅可以闭源免费2017年亚马逊收购后将许可证从 GPLv2 改为MIT这意味着公司做商业项目完全没有法律压力修改源码后可以闭源销售。这直接打掉了商业RTOS最大的竞争壁垒。③ 超强可移植性——一套代码通吃天下a、纯ANSI C编写兼容 GCC、Keil、IAR、MPLAB 等所有主流编译器b、已移植到40 处理器架构ARM Cortex-M/R、RISC-V、XtensaESP32、8051、AVR、PIC32、MIPS……c、从8位到32位MCU全覆盖‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧关注我的微信公众号回复“星球”加入知识星球有问必答。点击“阅读原文”查看知识星球详情欢迎点分享、收藏、点赞、在看。
http://www.rkmt.cn/news/1398441.html

相关文章:

  • 告别品牌绑架!用Zigbee2MQTT+Home Assistant打造全屋智能的万能钥匙
  • 2026年孤残儿童护理员等级划分及技能要求解析:周口保健按摩师、周口健康照护师、周口健康管理师、周口公共营养师选择指南 - 优质品牌商家
  • 告别官网限制!手把手教你用网盘资源在CentOS 7上搞定Sybase ASE 15.7/16
  • 后端开发中的安全防护:常见漏洞与防御措施
  • 从GitHub到Colab:我的病理图像分析项目复现踩坑实录与完整避坑指南
  • GeekOS||project0实战:从零构建内核线程与键盘交互
  • CentOS7服务器高效挂载NTFS移动硬盘:从驱动安装到数据迁移实战
  • Apache Superset CVE-2023-27524未授权访问漏洞深度解析
  • RTG方法:机器人动作平滑与安全控制新方案
  • utf8转utf16
  • 别再只用简单线了!用QGIS箭头符号让你的河流、管网数据流向一目了然
  • 从Blender到Unity:手把手教你搞定模型导入、骨骼绑定与蒙皮动画(附避坑清单)
  • 数据采集卡也能当示波器:触发模式与记录仪的底层玩法
  • 别再只跑udhcpc了!深入解读BusyBox DHCP客户端的工作流程与default.script的幕后作用
  • 使用taotoken cli工具一键配置团队多成员的开发环境
  • 手把手教你用CMP Facade数据集做图像修复:从下载到实战(含云盘链接)
  • 用SPSSAU做Dagum基尼系数分析:手把手教你分解中国各省人均GDP的区域差异
  • 从I²t曲线到温升降额:手把手教你用Littelfuse数据手册精准计算Fuse熔断时间
  • 牛顿法工程实践:从收敛失效到鲁棒求解的四步闭环
  • 别再让主进程摸鱼了!聊聊并行遗传算法中‘富农+长工’模式的性能提升
  • 从功放到调音台:手把手拆解电位器在音频电路里的6种经典玩法(附电路图)
  • 布隆过滤器:从位图到布谷鸟的演进之路——缓存穿透的终极防线
  • 新手也能懂:PX4固定翼姿态控制器,从手动飞行到串级PID的保姆级拆解
  • 别再乱用-ss和-t了!FFmpeg裁剪视频时顺序放错,小心时长对不上(附正确用法)
  • 避坑指南:在Ubuntu 22.04上用Scala 2.12.17跑通第一个程序,我踩了这些权限和路径的坑
  • 别再手动拧绳子了!用3DMAX的Rope插件提升场景细节的真实感(2015-2024版通用)
  • 从零打包一个Ubuntu软件:详解deb包里那个必不可少的control文件怎么写
  • 手把手教你用STM32看懂充电桩的‘暗号’:从CP信号到充电引导的完整解析
  • 告别‘command not found’:一份覆盖Debian、Ubuntu、Alpine的Linux网络与进程诊断工具安装指南
  • Linux内核启动探秘:Ramdisk从编译、解压到挂载的完整生命周期剖析(含源码导读)