嵌入式开发者的选择——用RTOS,还是不用RTOS?

news/2024/9/9 12:05:39

  多年来,随着新技术的引入以及用户和应用程序的不同需求,嵌入式开发人员发生了变化。

  正如所有嵌入式东西一样,没有两次流程是相同的。然而,我们应对设计挑战的方式有一些共同之处。你总是从系统级别开始,需要从最终应用程序的角度考虑你正在设计的系统类型。然后,将系统分解成小块或子系统。这是设计的一个重要方面,因为它决定了使用哪些技术、API、接口等。

  下一步是找出设计的哪些部分需要原型化来验证你的假设,以及这些特性是可能的。这个过程应该是快速和不昂贵的。

  接下来,你需要考虑特定的硬件资源,如CPU(或FPGA)、GPU、加速器、处理器接口等。基于这些硬件决策,你现在回到你的软件,确定哪种类型的操作系统最有意义,是开源和Linux就足够了,还是需要一个实时操作系统(RTOS)。

  在整个嵌入式开发过程中,你需要考虑系统的生命周期——将来你会有什么需求,以及你将如何处理你收集的所有数据?

  这一流程的关键是有一个供应商可以带你从设计到开发到部署,并提供选择,无论你是想从RTOS开始,还是正在考虑开源,或者你是否需要认证。

  实时的定义是什么?相对于开源,什么时候需要RTOS?

  从根本上说,实时是指你的应用程序可以在要求的时间范围内执行给定的任务。这就是我们所说的“足够好”或者,RTOS为你提供了确定性,你可以从执行流的角度预测系统的行为。你可以根据执行时间准确预测。无论是10毫秒还是100毫秒,总会有延迟。但是你必须确定多少延迟不会中断你的系统。

  RTOS负责至关重要的进程和机器。想想飞机、火车、汽车,甚至火星探测器。在许多情况下,RTOS的正常运作确保了对人类生命和环境的保护。

  

  或者,在原型嵌入式开发期间,开源是最方便的选择。这是因为你可以访问大量代码,并且你可以看到社区是如何采用类似技术的。当你有计算密集型(例如机器学习)的用例时,开源框架或操作系统也可能是正确的选择,与RTOS一起用于应用程序的最大约束和控制方面。从纯知识产权的角度来看,开源可能会成为问题。换句话说,作为供应商或OEM,你是否愿意将你的源代码提供给社区?

  困惑在于一些开发者错误地将开源与非开源、实时与非实时联系在一起。这是两种截然不同的讨论。真正的争论回到系统基础设施,以及它是否需要确定性。

  在过去的几十年里,RTOS的角色发生了怎样的变化?

  嵌入式系统的世界正在经历一场重大变革,影响着RTOS的作用以及依赖于确定性、超可靠性和性能的应用设计。一旦被隔离和专门构建,嵌入式系统正在迅速增加新的功能,如更好的连接性、可重用性和灵活性。它们越来越多地由软件定义。

  今天的RTOS必须跟上创新的步伐,拥抱现代发展实践。他们必须能够使用新的、更复杂的处理器。它们的设计应该能够在行业中实现新的、更快的开发周期。这意味着要兼容新一代嵌入式开发人员所采用的框架、语言和方法。

  然而,没有改变的是RTOS的基本要求,它必须满足所有这些新标准,而不损害安全性、安全性、性能和可靠性。

  有没有我们应该知道的颠覆性和/或可行性技术?

  首先想到的是5G通信。5G不仅仅是一种让你做事更快的新通信标准。5G从根本上重新定义了延迟等问题。5G的最小可接受延迟远远低于4G LTE。有些人将其称为“超低延迟”,这让嵌入式开发人员可以实时做以前做不到的事情。显然,存在天线和无线电接入问题,但这应该不会有太大影响。5G具有通过边缘计算部署实现大规模“自主”的潜力。


http://lihuaxi.xjx100.cn/news/765791.html

相关文章

如何用IDEA创建SpringBoot项目

一、创建一个 Spring Initializr 工程 next后选择2.7.8版本,勾选以下几个 Web里的spring bootTemplate Engines 里的 ThymeleafSQL里的MyBatis Framework 和 Mysql Driver 然后finish完成 二、配置resources文件 2.1、 application.properties: #??…

【HBase——陌陌海量存储案例】5. Apache Phoenix快速入门

6.3 快速入门 6.3.1 需求 本次的小DEMO,我们沿用之前的订单数据集。我们将使用Phoenix来创建表,并进行数据增删改查操作。 列名说明id订单IDstatus订单状态money支付金额pay_way支付方式IDuser_id用户IDoperation_time操作时间category商品分类 6.3.…

uniapp生成抖音小程序 问题记录

input标签在ios不显示 在开发工具和安卓上input标签可以正常显示&#xff0c;但是在ios上发现input标签不显示。 解决办法&#xff1a;给input加上宽度&#xff1b; 原因大概是抖音小程序的input输入框没有宽度&#xff0c;需要手动设置。 <!-- 在ios不显示 --> <…

ESP32设备驱动-ADS1015(ADC)驱动

ADS1015(ADC)驱动 1、ADS1015介绍 ADS1015 是一款具有 12 位分辨率的精密模数转换器 (ADC),采用超小型无引线 QFN-10 封装或 MSOP-10 封装。 ADS1015 的设计考虑了精度、功率和易于实施。 ADS1015 具有板载基准和振荡器。 数据通过 I2C 兼容的串行接口传输; 可以选择四个 I…

DNS Sec

域名系统&#xff08;Domain Name System&#xff0c;DNS&#xff09;响应消息中给出域名服务器的IP地址、完全合格的域名与IP地址之间的绑定关系等&#xff0c;因此&#xff0c;DNS响应消息的真实性和完整性直接关系用户访问网络过程的安全性。为了保证DNS响应消息的真实性和完…

前端js中使字符串代码运行

前端js中运行字符串代码有以下4种方案 1、使用eval(“要执行的字符串”) 2、使用new Function(“要执行的字符串”) 3、setTimeOut(“要执行的字符串”,500) 4、setInterval(“要执行的字符串”,500) 结合eval和new Function()一起实现 try { const val new Function(“要执行…

TCP的3次握手细节

一、什么是TCP的三次握手在网络数据传输中&#xff0c;传输层协议TCP是要建立连接的可靠传输&#xff0c;TCP建立连接的过程&#xff0c;我们称为三次握手。三次握手的具体细节1. 第一次握手&#xff1a;Client将SYN置1&#xff0c;随机产生一个初始序列号seq发送给Server&…

Ruoyi-Cloud框架学习-【06 新增业务项目】

新建模块 结构查看 新增子模块&#xff0c;按照若依赖的约定&#xff0c;避免后续出现问题&#xff0c;当然一通百通&#xff0c;也可以按照自己的思路配置&#xff0c;修改对应的配置即可。 后端项目结构如下&#xff0c;通过观察&#xff0c;我们需要新增自己的模块在ruoy…