在2000年前后,嵌入式软件工程师有着一套非常具体的技能,他们通常是电气工程师,不仅了解底层硬件的工作原理,还可以在底层编写汇编代码或者C语言代码,以使系统满足实时需求。嵌入式软件工程师不仅要了解诸如C语言的软件开发,还要了解硬件。位、字节、寄存器的世界,正是嵌入式软件工程师的领域。
但是如今不再那么简单了。
,这些结构比较简单,因此开发人员一般在几个月的开发周期内便能掌握这些结构。
许多嵌入式开发团队已经转向更加复杂的 32 位体系结构,不仅包括一些用于数据采集的采样传感器,以及外围的通信设备,还包括日益繁多的各种协议,例如 USB、DMA、 TCP/IP、蓝牙等。这些复杂的体系架构,或者相关的通信协议,开发人员往往需要数年才能真正的完全掌握。
显然,嵌入式系统已经变得极其复杂。将硬件设备连接到互联网,以创建物联网的巨大需求,在以往传统的嵌入式C语言程序开发中是没有出现过的。所以,这一“巨大需求”导致了一个真空——相关公司找不到足够的嵌入式C语言软件开发工程师了。
有些公司并未大力培养嵌入式C语言软件工程师,而是开始依赖具有Windows应用程序或者移动设备程序开发经验的人员来开发他们的实时嵌入式软件。这会导致另外一个较为致命的问题出现:这些开发人员大多只了解公司分配的任务所需的高层应用程序框架,对底层硬件却不够了解。
这使得嵌入式软件开发人员,甚至应用程序开发人员更容易在更高层上编写软件,他们不必再担心底层的硬件了,因为相关的“轮子”已经“出厂自带”了。
显然,这样的嵌入式程序开发模式更加有利于一些嵌入式公司降低成本,加快产品上市时间。但是我们也可能发现,关心位、字节、寄存器的传统嵌入式C语言、汇编软件开发工程师显得没那么重要了,可能很快就会“灭绝”。
未来的嵌入式软件工程师可能只需要具备应用程序开发技能,知道如何调用一个 API 让硬件做事。
这些工程师,更像是远离硬件的 Windows 程序员。
未来嵌入式软件开发人员不具备底层硬件开发能力不一定就是百分之百的坏事,至少这样的开发模式允许一些缺乏关键技能的开发团队或者公司继续发展下去,这一点可以从移动设备领域看出。
然而现实是,传统嵌入式程序开发人员被公司忽略了。很多高科技公司更加青睐机器视觉、机器学习和其他尖端研究领域的开发人员,值得说明的是,这些尖端人才往往不屑于驱动硬件这类“基础工作”。但是,如果没有程序员能够与硬件设备沟通,所谓的“机器”视觉和“机器”学习又怎样才能实现呢?
嵌友是什么看的呢?
1.兆易创新推出RISC-V架构的GD32VF103,这是MCU界的“小欢喜”
3.使用STM32通用Bootloader,OTA更加Easy了!
5.宁愿写两遍代码,也不用 C++跨iOS、Android平台开发?
免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。