编写操作系统的流利编程语言,如C:对组件级硬件的理解;以及轻松跨软硬件的能力,都是当今嵌入式工程师的核心技能。
嵌入式开发包含多种多样的技术和不断扩展的功能,那么什么样的技能对工程师在就业市场上具有竞争力和发展职业生涯是重要的呢?
你不需要成为电气工程师或芯片设计师,但你需要了解一些硬件。了解地址和数据总线、I2C和SPI接口总线以及GPIO的工作原理。你还应该有一个关于GPIO及其相关电压的基本电子背景。这可以帮助您了解将嵌入式硬件与现实世界连接起来的基础知识。
此外,您需要确定您是否对设备驱动程序、移植操作系统或从头开始运行操作系统感兴趣。所有这些都要求能够读取制造商的数据表,知道什么是寄存器以及如何操作寄存器中的位。另一方面,如果你只想专注于软件,应用是只嵌入(即资源有限)还是具有实时和/或实时功能?对安全的严重影响?嵌入式、实时性和安全性非常重要。他们在很多方面都有联系,但不是一回事。他们都需要稍微不同的技能。这些技能都是可以学习的。然而,大多数人无法尝试解决所有这些领域,尤其是在职业生涯的初期。但是,可以制定一个计划,从嵌入式资源约束的“正义”开始。然后,转到实时(软实时和硬实时)。最后,它对安全至关重要(由于设计不佳,这是要求最高的实时域)。
今天的嵌入式工程师应该熟悉开源技术,如Linux、泽法、Tensorflow或RISC-V。事实上,开源技术和许可在嵌入式软件中变得无处不在。此外,SoC级软件优化技能对于性能、内存和功耗优化越来越重要。随着嵌入式工程师被要求使用专用的硬件加速器(如GPU、DSP、视频、视觉、安全和神经网络加速器)来做更多的事情,系统级的思考将变得更加重要。