嵌入式开发:如何为项目选择合适的RTOS?

嵌入式开发实战:如何为你的单片机项目选择合适RTOS 本文深入探讨了如何为单片机项目选择合适RTOS(实时操作系统),从硬件资源占用、实时性表现、功能特性、生态与工具链、许可与成本五大关键指标进行分析。通过对比FreeRTOS、RT-Thread和μC/OS等主流RTOS的优缺点,结合实际应用场景和硬件平台,提供了详细的选型决策指南和实战技巧,帮助开发者优化嵌入式系统性能。 阅读详情

 为一个项目选择合适的RTOS可能是一件棘手的事情。嵌入式开发人员经常带着预先设定的观点来到谈判桌前,这些观点可能会影响他们的判断,并将他们引向非最佳方向。许多人都参与过工程决策,其中的选择是由最大声、最积极的团队成员决定的。让我们来看看这种决策技巧,以及它如何为工作选择合适的RTOS。

  步骤# 1–确定选择标准

  为了做出公正的RTOS选择,开发团队需要首先确定可以用来评估RTOS的重要选择标准。选择RTOS时需要考虑的七个关键特征是性能、特性、成本、生态系统、中间件、供应商/销售商和开发团队中的工程师。每个特征可以分解为子特征,由每个团队成员进行评估。例如,性能特征可以包括RAM占用面积、ROM占用面积、上下文切换时间、中断等待时间和低功率能力。

  第2步-确定标准的重要性

  并不是RTOS评选的每一项标准都是平等的。例如,RTOS符合POSIX接口标准的事实可能没有具有最小ROM占用空间的RTOS重要。因为所有的标准并不是生来平等的,开发团队需要仔细检查每一个标准,并对它们的重要性进行排序。排名过程实质上提供了一个统计权重,该权重使一个标准比另一个标准更重要,排名有助于最重要的标准在决策过程中占据更大的权重。

第3步–选择要比较的RTOS

  快速的互联网搜索显示,有超过100种不同的RTOS产品可供选择,这对于任何嵌入式开发团队来说都太多了,难以评估。相反,开发团队应该确定不超过三到五个RTOS来评估。开发团队应该确定在他们的行业中普遍使用的、他们的开发人员熟悉的并且满足他们的系统需求的RTOS。一个好的样本将包括商业可用的和开源的解决方案。

  第4步–确定决策者

  为了实现基于标准的公正决策,开发人员需要确定具有参与决策过程的技能和经验的团队成员。在大多数情况下,RTOS的选择应该包括团队的软件工程师和软件工程经理。项目经理可以包括在内,但前提是他们有资格评估RTOS的具体标准。RTOS标准和成本很可能具有最高的权重,因此,如果决策者无法准确衡量RTOS,结果可能会有偏差。

  步骤# 5–创建KT决策矩阵

  选择了重要的标准和决策者后,现在是时候创建一个表格,用于评估每个RTOS的标准,从而选出一个RTOS。可以使用的方法之一是KT决策矩阵。KT决策矩阵允许我们针对每个RTOS评估我们的标准。在本例中,标准在矩阵左侧分类列出,RTOS在顶部。每个RTOS都有多行,以便每个决策者可以评估每个标准。在下图中可以看到一个例子。

第6步-评估标准

  每个决策者现在可以开始评估每个标准。在本例中,有三个不同的RTOSes正在接受评估。每项标准从最好的三级到最差的一级对每个RTOS进行评级。不应重复使用任何号码。例如,对于RTOS #3,最小的RAM占用量被评定为1,最差;对于RTOS#1,最小的RAM占用量被评定为2;对于RTOS #2,最小的RAM占用量被评定为3,最好的RAM占用量被评定为3。如果有四个RTOS需要评估,那么这些值将从1到4进行评级。

  每个嵌入式开发人员填写他们自己的列,直到整个矩阵完成。在一些非常固执己见的团队中,可能需要让每个团队成员秘密地填写他们的排名。一个填好的矩阵已经准备好进行分析,更重要的是,不偏不倚的团队决策。

  第7步-分析结果

  有许多方法可以分析矩阵以做出决策,但最简单的方法是简单地将每个RTOSes标准的总分相加,然后乘以标准权重。然后将所有这些总数在所有标准中相加。此时,我们已经做出了决定。得分最高的RTOS是最符合项目需求的RTOS。很可能,这个决定不会让很多人高兴。这通常发生在审查冷酷的事实时。真正的问题是,我们能接受正确的决定吗?我们能不为此付出代价吗?

  结论

  不检查事实、要求和顾虑就选择RTOS是一件危险的事情。许多团队匆忙采购“自由”软件,却发现由于从未考虑的因素,总拥有成本比预期的要高。为了在成本、质量和支持之间取得最佳平衡,团队应该为商业RTOS付费。然而,在任何团队会议上都不可能确定正确的平衡。使用给出的决策矩阵只是一个例子,说明了嵌入式开发团队如何能够在保持关注最关键因素的同时产生公正的意见。

【学习交流群:197416462】

学习教程,点击下方链接学习:

走进嵌入式

嵌入式开发职业规划

嵌入式行业发展跟现状分析

FreeRTOS内核源码深度剖析

WiFi_RTOS_SDK

网盘免费资料包,需要自行领取:
嵌入式物联网 22个STM32项目、大赛作品,【华清远见发放资料包】

STM32RTOS:uCOS和FreeRTOS 阅读详情

相关推荐

嵌入式开发:5个RTOS设计最佳实践

RTOS 设计已成为许多嵌入式应用的关键,RTOS 用于超过 50% 的嵌入式应用程序,并且随着如此多的设备开始连接并开始使用机器学习,这些数字只会增加。嵌入式开发人员在设计基于 RTOS 的应用程序时,有许多注意事项,在今天的文章中,我们探讨5个RTOS 设计最佳实践。

yueqian_edu的博客 806

RTOS51,适用于MCS51单片机RTOS

一个适用于MCS51系列单片机RTOS。 本RTOS基于陈明计的Small RTOS v1.20.3。 修改如下: 1. 修正Small RTOS v1.20.3中的一些bug。 2. 去掉很多没有的注释。 3. 采用Doxygen风格注释。 4. 去掉很多配置,简化使用。 5. 使用keil的单模块单文件方式,自动连接使用的模块,减少目标模块尺寸。 Small RTOS v1.20.3比Small RTOS v1.11.0的Bug多太多,实在是... 个人认为,由于MCS51架构的限制,实现适用于MCS51的易移植的RTOS并不现实。所以Small RTOS的开发目标是不可实现的。这个版本去掉Small RTOS的移植目标,使之专于MCS51单片机。即使这样,这个RTOS并不具有太多的可应用可能,主要是其采用的关中断并计数方式,使得不管斯低优先级,还是高优先级中断,其响应都是不可接受的。只是对于人机界面加通讯等没有实时响应要求的应用,可能是有应用的可能。 目标是替代Small RTOS,使之更易用。 欢迎下载研究并指出其bug。zk_zhb@tom.com

嵌入式开发RTOS调试——处理计时问题

毫无疑问,当你开始在嵌入式开发中使用实时操作系统(RTOS)时,会有一个学习曲线。你将在更高的抽象层次上工作,使用或多或少的并行任务,而不仅仅是子例程,并且你需要考虑你的任务应该如何彼此共享数据和处理器时间。你需要为这些任务分配运行时优先级,而最佳解决方案并不明显。

yueqian_edu的博客 1003

几种主流的RTOS比较

几种主流的RTOS比较,看看对选择RTOS很有帮助

RTOS 驱动开发篇-通过 RTOS 组件实现按键驱动-优化2

1)按键驱动虽然是一个很简单的应用,但该项目综合地包含了 RTOS 中的诸多内容,包括队列、定时器、任务、GPIO、共享资源保护等几个方面。2)本小节继续优化按键驱动,实现一个相对完善的真实的产品中可能使用的按键驱动程序。不仅极大地改善了代码复用性差、数据关系更清晰、支持非常驻模式动态创建、取消一个按键。在后续的学习中,我们将基于 RTOS 实现更复杂的产品级的代码设计,一起努力吧。

wangyx1234的博客 960

FreeRTOS内存不够

FreeRTOS unable to allocate space

weixin_72283641的博客 5838

主流 RTOS 评估

1. RT-Thread RT-Thread 是国内出产的一款非常优秀的 RTOS。它和 FreeRTOS 、uCos 等经典 RTOS 最大的不同是:它不仅仅是一个实时内核,还具备丰富的中间层组件。 它提供了一个完整的软件栈解决方案,而不需要用户搜集各种 核心组件 手工从头搭建。 包括以下部分: 内核层:RT-Thread 内核,是 RT-Thread 的核心部分,包括了内核系统中对象的实现,例如多线程及其调度、信号量、邮箱、消息队列、内存管理、定时器等;libcpu/BSP(芯片移植相关文件 / 板

pwl999的博客 9587

FreeRTOS笔记—第一章 FreeRTOS概述

1.1 认识FreeRTOS 1.1.1什么是操作系统 操作系统(Operating System,简称OS)是管理计算机硬件与软件资源的计算机程序。简单说就是一种管理计算机资源的软件。目的是为了高效、合理、简单、安全的利用有限的计算机硬件与软件资源。 最初的电脑没有操作系统,人们通过各种按钮来控制计算机,后来出现了汇编语言,操作人员通过有孔的纸带将程序输入电脑进行编译。这些将语言内置的电脑只能由制作人员自己编写程序来运行,不利于程序、设备的共用。为了解决这种问题,就...

4125

几种嵌入式RTOS的分析与比较

几种嵌入式RTOS的分析与比较 http://tech.ddvip.com   2008年07月10日    社区交流 Sailor_forever  sailing_9806@163.com 整理 转载请注明 http://blog.csdn.net/sailor_8318/archive/2009/03/21/4009911.aspx   【摘要】本文介绍4种嵌入式实时操作系统VxW

小丁BLOG 6562

RTOS的最通俗理解】行业大佬用一篇文章带你快速理解RTOS

文章目录单片机\_RTOS\_架构1. RTOS的概念1.1 用人来类比单片机程序和RTOS1.1.1 我无法一心多用1.2.2 我可以一心多用1.2 程序简单示例2. 架构的概念2.1 用人来类比电子产品2.2 要深入理解RTOS就必须深入理解CPU架构3. 课程重点系统课程学习 5分钟拿下你的三连,RTOS的最通俗理解! 单片机_RTOS_架构 1. RTOS的概念 1.1 用人来类

韦东山嵌入式专栏 3万+

嵌入式开发中的常用实时操作系统(RTOS)介绍

Zephyr是由Linux基金会主导的开源RTOS,专为物联网(IoT)设备设计。它支持多种架构,包括ARM Cortex-M、x86、RISC-V等。MQX RTOS是NXP提供的商业RTOS,广泛应用于工业控制、消费电子和汽车电子等领域。RT-Thread是一个开源的实时操作系统,起源于中国,广泛应用于物联网设备。ChibiOS/RT是一个开源的RTOS,特别适用于资源受限的微控制器。ThreadX是由Express Logic开发的商业RTOS,现已成为微软Azure RTOS的一部分。

gygkhd的博客 4150

四种常用嵌入式RTOS的比较与选择

嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格要求的专用计算机系统。

RTOS 入门(1):什么是 RTOS ?试手 FreeRTOS

需要注意的是,ESP32 并不运行 Vanilla-FreeRTOS,为了支持双核芯片,在原生 FreeRTOS 基础上进行了修改,使其支持 SMP(对称多处理)。函数创建一个任务并且只在指定的 CPU 运行,这是 ESP32 独有的函数,与 vanilla FreeRTOS 中。但是基础的语法依旧是保持一致的,所以依赖 ESP32 程序库的 FreeRTOS 直接学习也不失为一个好的选择。任务优先级从 0 开始,一直到 config 中定义的最大优先级,ESP32 默认的最大优先级是 24。

joker520522的博客 3647

嵌入式开发——RTOS

总述 对于较为复杂的应用开发,还是使用RTOS比较好。RTOS一般都集成了线程管理、线程同步、共享资源保护等功能模块。使用RTOS能够方便的管理多个功能模块,并且发挥CPU的最大资源使用(无时无刻的进行着任务的切换与运行)。 RTOS对比 名称 简述 RT-Thread 国产开源RTOS,生态组件很多(GUI、IDE等),文档丰富,对于国内开发者比较友好,支持POSIX接口 官网 FreeRTOS 比较经典开源的RTOS,使用很广泛,组件较少 UCOS 早期的商用付费RTOS

静默与黑白的博客 1648

嵌入式开发RTOS有哪些优势?

关注+星标公众号,不错过精彩内容作者 |strongerHuang微信公众号 |嵌入式专栏嵌入式开发,到底改裸奔还是跑RTOS,不同的人有不同观点。相对裸奔而言,RTOS具有什么优势?回顾裸机时代刚开始学单片机,基本都是从裸机开始,经典的“项目”就是流水灯,也是你学习单片机的开始。但是随着学习的不断深入,裸机所暴露的问题就越来越多,这里我给大家总结下吧:1、并发性:程序并发工作效率低在写裸机软...

strongerHuang 1472

C语言嵌入式开发ARM架构、嵌入式Linux、RTOS、硬件驱动深度解析

本文深入解析C语言在嵌入式开发中的应用,涵盖ARM架构、嵌入式Linux、RTOS和硬件驱动开发四大核心模块。首先介绍ARM架构的基础知识,包括寄存器组和汇编语言编程;然后详细讲解嵌入式Linux的开发流程、工具链和实际应用案例;接着探讨FreeRTOS实时操作系统的核心组件与任务管理;最后提供硬件驱动开发的实践指导。文章包含丰富的代码示例和避坑指南,帮助开发者掌握在资源受限环境下使用C语言高效控制硬件的关键技术,适用于物联网、工业控制等领域的嵌入式系统开发。

编程世界如山海,探索不止。 2万+

嵌入式开发 | RTOS滴答Tick设置多少才合适

关注+星标公众号,不错过精彩内容作者 |strongerHuang微信公众号 |strongerHuang最近有读者问了这么一个问题:为啥RTOS的系统滴答(Tick)默认配置都是1000,我配置为100、10000,或者2000可以不?相信很多初学者都有这个疑问,包括我初学RTOS也曾困惑滴答配置不同值到底有啥不同和影响。今天就来简单说下关于RTOS系统滴答的内容!...

strongerHuang 674
上一篇: 嵌入式开发:构建现代遥测GUI的5个技巧
下一篇: STM32结合ESP8266初始准备
an520_
博客等级 码龄4年 524粉丝 · 84原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值