多年来,随着新技术的引入以及用户和应用程序的不同需求,嵌入式开发人员发生了变化。
正如所有嵌入式东西一样,没有两次流程是相同的。然而,我们应对设计挑战的方式有一些共同之处。你总是从系统级别开始,需要从最终应用程序的角度考虑你正在设计的系统类型。然后,将系统分解成小块或子系统。这是设计的一个重要方面,因为它决定了使用哪些技术、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具有通过边缘计算部署实现大规模“自主”的潜力。