桥接嵌入式软件和信息技术

能够轻松且频繁地更新软件是一种积极的进步。然而,对于那些即使在很短的时间内都对安全至关重要的产品来说,运行带有bug的软件可能是毁灭性的。

如果你在10到20年前问我,嵌入式软件工程师的职责和技能是什么,我会给出一个明确、具体、标准的答案。快进到今天,嵌入式软件领域的保护伞已经大大扩展了。这种扩展影响了正在使用的编程语言、操作系统的复杂性、支持物联网(IoT)要求的选项以及软件开发生命周期(SDLC)的质量流程。

科技进步

我发现,作为一个固件或嵌入式工程师,我有必要跟上最新的技术,甚至作为一个经理。目前,持续学习的心态更加重要,因为所有行业都增加了连通性要求。万博shoujiban1

例如,以具有核心功能的软件设计为例,控制算法具有输入/输出处理、诊断和显示等功能。为了保持最新,这款设备将需要更多过去不常见的高级功能。需要一个板载嵌入式数据库系统来组织和存储数据,以方便访问,而不是简单地手动存储在电擦除可编程只读存储器(EEPROM)。

需要一个嵌入式web服务器来允许外部客户端访问设备的数据。为了显示,该软件将以JavaScript编写,作为一个独立的基于web的应用程序运行。这个步骤允许对后端控制的更改不影响图形用户界面(GUI),反之亦然,对GUI的更改可以独立完成—这将导致更短的回归测试时间。

这些新的设备特性要求嵌入式工程师离开舒适区,开始理解JavaScript框架,如Node、React和Electron。对公共数据库模式、可扩展标记语言(XML)和JavaScript对象表示法(JSON)的了解也将为嵌入式工程师提供配置灵活性的选项。强大的嵌入式工程团队将接受这些传统的信息技术(IT)技能和编程语言。

连接系统、尺寸和工具

更低的内存成本、更小的封装尺寸中更强大的微控制器以及嵌入式特定发行版的稳定性,使得Linux成为使用实时内核的嵌入式产品的流行选择。嵌入式工程师在过去可能使用Unix机器作为他们的开发环境,但是现在他们需要熟悉c++和Linux操作系统可以为他们的产品设计提供的高级特性,而不是占用空间更小的实时操作系统(RTOS)。

灵活的嵌入式工程团队将了解嵌入式系统的“尺寸谱”。这包括小型裸机、循环式体系结构,一直到大型多核和多线程体系结构,与完全开发的PC系统相邻,再次进入IT领域。

SDLC目前使用的工具是IT和嵌入式软件的传统角色结合在一起的另一个领域。工具的配置方式允许:在检查源代码文件时自动检查审阅状态、自动构建、自动回归测试,然后在bug跟踪工具中自动记录故障。这些工具的设置超出了基本的系统管理,需要了解自动测试脚本、可执行构建文件和构建服务器,以及理解敏捷过程。此角色被认为是DevOps的一部分,需要IT和软件工程知识。

在速度和质量之间取得平衡

在我的时间,我一直在软件集团的一部分,很难找到平衡快速软件版本,由于市场竞争的压力,需要勤奋与健壮的质量检查,特别是在功能安全。PC和web应用程序往往会得到频繁的更新,因为推出新软件很容易,而嵌入式产品传统上要求发布过程更加慎重和正式。这种情况可能包括正式的代码评审、单元测试、回归系统测试等。

我发现,由于无线编程的流行,这两种理念相互碰撞。一方面,易于且频繁地更新软件的能力对于嵌入式领域来说是一个积极的进步。然而,工程师和管理人员必须记住,对于那些安全至关重要的产品,即使在很短的时间内,运行有bug的软件也可能是毁灭性的。

这一结果尤其适用于与其他硬件模块、通信总线、传感器交互的嵌入式设备,有时也适用于极端环境。在这个领域,软件质量需要超越传统的IT,并包括作为SDLC一部分的所有过程。

强调过程和最佳做法

Actalent目前的多学科软件工程师团队已经准备好执行我们的客户项目,这些项目需要固件、低级嵌入式C、应用级基于linux的c++、web应用软件和DevOps背景的内嵌组合。我们继续强调,传统的工程质量定义并不独立于源代码创建或仅限于测试;它包括所有团队成员在SDLC中遵循的过程和最佳实践。

想了解更多关于嵌入式软件和信息技术的趋势吗?现在联系艾克特。