一线工程师对2019年嵌入式工作的感想与未来预测

嵌入式ARM 2019-02-26 16:41



来源知乎

原贴地址:https://zhuanlan.zhihu.com/p/55511814


1 嵌入式岗位的总结


嵌入式的定义很模糊,尤其是这几年发展出众多的应用形式,让人摸不着头脑。对于想进入这个地方的新人,有种望而却步的感觉。我来总结一下有关于嵌入式,从最根源开始到最终端的岗位。嵌入式很少有人谈及架构师这样的职位,不同于顶层的互联网应用开发,里面很少涉及诸多业务和实现功能上的矛盾;在这里谈的架构往往是半导体芯片的架构、成型系统的架构,属于IC设计和系统驱动的范畴。


1.1 半导体公司的芯片级工作


编译器->Firmware->AE职位->FAE职位


我们在使用嵌入式的时候,使用STM32会有各种各样的库,这些库的开发都是原厂提供了。那么在半导体公司涉及嵌入式的岗位有什么呢?大体上可以分为四大环节,编译器、板级支持包和demo开发及技术支持,每个里面还有子系列,就不具体说了。


1)编译器岗位


底层纯指令集平台,处理器编译工具链开发,不太了解


2.1)BSP、Firmware、Senior系统 工程师


arm公司的CPU Embedded System Solution Engineers/ CPU Software / CPU IP / SoC solution 就是处理这个岗位的, 职能就是为芯片提供板级支持包,开发系统Linux/Android这些固件驱动、处理器和操作系统级的贴合,比如OMAPL平台的多核通信组件就是这个职位开发。


举个例子1: arm公司核心团队的PD CPU部门的 cpu embeded system solution工程师职位





举个例子2: nvidia公司 Firmware工程师职位


今年10月份的时候收到NVIDIA的职位邀请,基本上Linux驱动开发都是进SoC,而和HR沟通,他们Team Leader给的筛选简历关键词基本要有:内核,驱动 这样的词语





高级一点的“互联网架构师”级别的senior engineer :


例如:






3)AE-应用工程师


出demo的工程师各种各样的示例代码,芯片资料里面的example都是这个职位开发的。


举个例子:ADI公司的Application Engineer (Software) (Shanghai) 应用工程师





4) FAE-现场支持技术应用工程师


现场技术支持工程师,把AE的开发的代码交给下游客户公司,并且反馈下游公司的需求。


1.2 B应用级-社会最多的岗位


裸机(无操作系统)->(应用级->驱动级)(有操作系统)


这个就是比较普遍,在社会上比比皆是,他们可以称为:嵌入式软件工程师、嵌入式应用工程师、嵌入式技术工程师这类的,也有一些公司把物联网工程师也划到这里面,工作环节为:把握主流处理器特性,和业务对接,根据需求选择最高性价比的解决方案,利用半导体公司开发的示例demo进行评估,修改,扩充或者组合。


1)裸机开发工程师


数字电路+单片机接口+C语言开发+stm32这类的单片机裸机开发,实现最基本的业务,能看懂原理图,也会动手画一些简单的模拟数字的板子,焊一些板子(这是一般的毕业大学生的水平)


这是在中国人才热线招聘网站上找的一个:单片机开发工程师/嵌入式开发工程师





2)Linux/Android系统嵌入式工程师


这一部分人上系统了,不太拘泥于接口如何,但裸机开发工程师的工作都会,重点还会放在系统上面,移植Linux,配置开发环境,移植boot,好一点的能删减一些内核,删减一下boot这类的,在嵌入式linux上搭建一些服务。然后会C++,可以使用Qt,GTK框架开发软件解决基本需求,移植常用的openCV这些开源库做要求不高和不细的工作。





3)驱动开发工程师


这部分在Linux/Android的基础上开始进行内核级驱动的开发,调用Linux内核中的各个机制,理解死锁、并发、原子操作,能够开发字符驱动、块驱动完成嵌入式系统的深度定制。


1.小米的camera sensor驱动工程师:





2.小米电视的BSP软件开发工程师:





3.海思的Linux/windows/VMware设备驱动开发:





1.3 算法级:专业算法+平台


算法不同于计算机或者大数据这类的算法工程师,那个工程师把重点放在算法内容本身不考虑平台特性。而嵌入式的算法工程师做起来就比较别扭,因为需要和嵌入式应用工程师配合,也要基于嵌入式平台,嵌入式本身就是一个阉割的计算机,性能和内存不如一般计算机大,故考虑的问题比较多。算法级常常是图像、通信、控制专业领域。


2 嵌入式行业的一些预测看法


从关注上游半导体公司的角度,来说一下对嵌入式行业的预测:


(一)嵌入式的发展大方向-SoC将是主流


当前的主流可以按照两个类型进行分割:裸机系列和有系统系列。第一种,裸机系列很容易理解,比如C51、MSP430、PIC这样的品种繁多的单片机,开发过程和方法基本相同,使用半导体厂商提供的BSP包,按照手册进行寄存器配置,对周围数字芯片的各个协议工作方式了解,就能解决一些功能单一的需求;跑系统系列基本上就是Linux、Android这样的非实时操作系统和一些实时操作系统,操作系统的多任务、完善管理机制就开始谈及芯片的架构和指令,PowerPC、ARM,MIPS等等等,这些处理器芯片常常用于解决复杂的需求,并将需求定制交给熟悉业务和技术的嵌入式应用工程师或者CS行业工程师,这样就可以完美和计算机开发者相结合制造出多种多样的功能设备。这样看的话,操作系统可以说是在嵌入式行业和计算机行业打通的一个桥梁。


传统的嵌入式基本上就是这样的,稍微的预测一下呢?


C51、MSP430、PIC这类的开发必定会淘汰,不是说它们不够锋利,而是由半导体行业的特性所决定的。半导体器件生产成本是按照规生产模数量所摊薄的,生产的越多,需求越多,成本越低,未来基于MSP430、C51的这样的实时性稍微有松弛的场景,也会可能选择一个ARM的以Cortex-M为核心的处理器(arm的授权费真的低到不行了,真算是业界良心),生产规模上升,成本则下降,且方便日后扩展,再然后Cortex-M核心arm公司也是在不断投入成本优化,上上的选择。


从裸机的发展上我们就可以看到一个发展方向,SoC模式的思想。核心架构交给专业的公司去做,自己公司做擅长的一块,然后这些功能部件全部都集成在一个芯片里。比如,今年参加的arm公司关于芯片IP的培训,也认真听了一些新的创业半导体公司的介绍,学习到了很多,也打开了我另一个世界的大门。其中在一个物联网案例中,有一个公司他们是做NB无线传输的,处理器核心采用的是arm公司的,他还特意感谢了arm公司,arm公司在提供demo评估自己芯片到流片的时候是不收费用的,量产后才交费用,这大大的降低了做企业的风险。


这个公司选择arm公司成熟的cortex-a系列处理器的核心的方案,自己专注做NB无线基带,调制解调算法MAC层,最后融合成一个芯片,然后流片,回片测试。这是一个物联网的芯片的案例,用的就是SoC模式。SoC模式将一整套系统做成一个芯片,就好像曾经把复杂的巨大模电数电的放大电路做成芯片一样。在物联网的应用上,嵌入式SoC,未来必然成趋势,嵌入式和物联网的关系实际上大家都清楚,很不负责任和不准确的说,嵌入式+CS+互联网,上中下组成的大规模网络可叫物联网,嵌入式在物联网布局中处于底层的地位,大规模布局这就有体积小、寿命长、低功耗这些基本要求,SoC模式肯定是首选,缺不了处理器,缺不了无线,做进一个芯片不刚刚好麽。


谈到SoC 模式,很多人都觉得大部分工作量其实在半导体上,嵌入式软件开发似乎没有用武之地,其实不然,反而对于嵌入式软件开发的要求又更上了一层楼。就说一个例子,多核、多层的SoC早在零几年的时候有这样成型的产品,比如TI公司的OMAPL138,DSP(C6748)+ARM(ARM9)架构的,在嵌入式软件上,面临的难以解决的问题就是核间通信,DSP和ARM如何通信,包括现在有名的ZYNQ,FPGA+ARM的多核异构平台,多核心之间通信如何解决,这始终需要去解决,还有,英伟达的TX2,SoC级上面ARM Cortex-A5x系列+自己的GPU。很多人采用的是Linux内核里面一个模型,IPC,常常用在裸机上。如果上操作系统,Linux系统对于多核异构的通信,TI使用syslink驱动级的组件,zynq采用ram内存读取的方法反包装出接口。这些开发对于多核通信应用级的都很难,更别说开发出这样的BSP支持的了。


未来嵌入式,不单单是对于传统的CPU+外设模块,通过外设总线驱动读取外部数据,而是打入到芯片内部,一块芯片,即一个系统。而开发的重点,也不单单是传统的那些嵌入式的知识,还要包含半导体SoC的知识。驱动开发需求会加大,嵌入式将越来越集成化,越来越脱离周边硬件,且深度整合,由外向内发展,SoC将是主流


(二)Linux内核重要性与嵌入式应用工程师的危机


应对上面SoC的发展趋势,一个单纯的嵌入式软件工程师已经满足不了需求,也随着技术迭代,这些名称的定义又赋予新的意义,这些传统的技能已跟不上潮流,身为行业人也要跟着风头做出转变。嵌入式是一个要不断学习不断反思的路线,个人的技术树上还要不断的开枝散叶,越来越集成化的开发平台过时的很快,就要求我们开出的技能枝叶更多,所以不能拘泥于某个公司的某个产品上,不能以C语言为天,但也应该注重基础。


Linux内核好厚的一本书,翻开第一页的前言那个作者告诉我们这还不是全部,如果把内核全部都写成书是不可能,只能去学习介绍最核心的东西。对于Linux内核,可以毫无遮掩的说这是全天下最好的工程师编写的最好的代码,一手的好学习资料。我们学习内核不是要学习内核怎么编写,而是要掌握里面的模型和机制,分页、内核调度和内存管理、死锁等等,这些机制模型可以嵌套在我们的任何解决方案中,就比如上面异构多核通信的机制,使用的IPC概念反复在Linux内核中出现,在某些场景下就可以抽象成一些模型。当然了,以上说的只是内核的附带的好处,最重要的就是,Linux内核和处理器核心深深绑定,Linux驱动和SoC周边绑定。从这句话中,你是否能体会到,现在的嵌入式开发是,物理上用外设总线和外设相连,然后编写C语言程序,然后烧写到FLASH里,然后去驱动外设传感器实现某一个功能;而未来的嵌入式开发在SoC上都是一个芯片内,即将依托操作系统,开发将要不断的深入内核中和修改Linux驱动去实现功能,留出接口,高度集成之后那些应用层的开发东西交由CS去做,实现业务层面的黏连,出现了不同以往的分工。


所以所谓的嵌入式应用工程师,这个职位很可能在未来会消失不见,这就是高级程度的体现后的变化。


嵌入式开发的门槛即将越来越高,阶级也将割裂,产生一个泾渭分明的分水岭嵌入式和CS那些模糊不清的界限也会逐渐清晰。我举个例子,我真的很久很久没用STM32了,有幸参加了意法半导体组织的全国巡回一个会议,意法的工程师给我们展示了他们公司可视化开发的操作,鼠标一点那个引脚,时钟多少,用了什么外设,启动多少定时器,哪个会冲突,然后生成代码,这样向导式生成的代码又好用又标准。那一刻感慨道,还要嵌入式应用工程师做什么呢?点点鼠标钱就赚到了。可这件事情怎么可能,当意法开发出这样的工具时候,自己的芯片好卖了,一部分人乐了,一部分人也哭了。甄嬛传里面,姐姐杀了姐姐,这个也一样,程序员让程序员失业,挺搞笑的,也挺残酷的。是的,意法半导体这个已经能体现出对于裸机开发的风气,TI的网页版配置方法都不需要你下载任何软件。因此你也可以看到,处于上游公司的职位一定程度上可以决定下游公司职位的命运


嵌入式进程不断的进化,学习量也会迅猛增加,既然SoC前景这么好,直接从SoC学起可否?可要知道,在这个混沌不清的嵌入式年代,都要一步步学上来,硬件还是从电阻电容,然后到数字电路、单片机;软件还是要从printf hello world,到指针结构体,甚至要学C++;理论还是要数据结构到一些常规算法;Linux系统还是要从熟练应用到研究它的内核。一步都不能少。这也正是嵌入式所谓坑的一点原因吧,但还是中国老祖宗那种辩证思想,塞翁失马焉知非福,学这么多门槛也高,将来分水岭一形成,你来决定别人的命运,而学习少且赚钱的维持不了几年肯定人也是膨胀,寻常人不走的路才有好风景呀,相信你总有怡然自得和庆幸的时段。还有对于嵌入式行业把脉的人,预测其药丸,实际上还不如说他们看到的是静态的嵌入式,怎么说,就好比蛇脱皮,留下干涸的一层蛇形的皮,真身早跑了。嵌入式的概念也会随着时代迁移且与时俱进,形式也会变换,它是活的,不是固定的。


我们通过观察最上游的半导体公司,就能看出未来发展的路径,而看现在刚需的那些一列列职位看不出什么的。忘记谁跟我说的了,上游决定下游,且有一定的延迟,这个延迟时间正是给你的时间,否则就会被无情的淘汰掉。


所以给的建议是在下游公司做嵌入式应用的人做好应对,能上系统就上系统。


(三)一分感慨:那些“刻苦人”的思维定式


我可以大言不惭的说自己是一个比较刻苦的人吧,学业时段基本上没有什么娱乐项目,都是敲代码焊板子看看行业趋势这类的,就希望有朝一日进入职场里面能“笨鸟先飞”。其实这样或多或少的产生了一种思维定式,包括进入职场,我无法忘记曾经那些努力,不希望那些努力白费去从事一个完全陌生还有些许相关的职位,这样就会错过很多的机会。这种把持着的安全感实际上也不是很好,也非常希望那些刻苦的职场新人能够大胆的去尝试,open自己,毕竟在学校的眼界是狭窄的,我们也只是按照自己的路子和道听途书的路子再走,可实际面对自己的道路是不尽相同,机会也不尽相同。放弃自己所学是艰难的,可有的时候真的需要勇敢迈出这一步,去体验新的平台的知识,其实到最后发现,学习能力是关键的,自己曾经学的到后来都是相通的,没有白不白学一说。可能,我在学校学习的是嵌入式软件开发,可公司要求我学习半导体里面的ip知识,是有些许关联,但不应该去拒绝,而应该大胆尝试,毕竟公司平台要高于当时你的眼界,当时也是怀揣着对现在生活的猜想去努力的,现在到了这个平台上就该接受一切现实,努力踏实工作,而不是放不下过去。


3 网友热评


楼主的整体观点还是很认同的,但是我觉得嵌入式应用工程师应该是不会消失的,嵌入式产品最终是面向用户、面向市场,那就会有各式各样的需求,以及如何更好更优的实现功能需求(涉及算法实现),这是都需要上层的应用工程师来解决的。反而觉得这类的应用工程师会需求更大,毕竟做应用的公司多,而半导体巨头公司也是少数。


越往下层走越专业,职业方向就越窄,成功的商业不是技术越高越难就越值钱。


拙见评论下,最近在和nxp和etas合作接触到国外原厂的产品路线,觉得他们已经基本垄断了国人的消费电子路线,不吹不黑,以后的核心绝不是驱动,是算法,是模型。单芯片ARM+remote processor或者FPGA,算法不在linux里面,在FPGA中安全。算法是核心。


像st开发了cube软件,非常合适小公司,但是大公司都是自己有一套平台。像cube生成的程序比较适合做验证和bringup,但是真正要使用还是要去做平台适配,后面对嵌入式只会对操作系统的技能要求越来越高。


stm32那个确实,cube对于所有芯片都能生成一套驱动代码 还有freertos  感觉驱动确实没什么可做的,连改都不怎么用改。


在某家芯片原厂做SE,就是AE,未来这个岗会消失掉?没太明白你说的为什么,然后怎么跑路,向哪个方向转?


ARM 的 DesignStart 的活动,我有去上海的那场。


看了下,你应该主要是做驱动的,基本上是驱动层面认识。


最近合作的一家芯片商为提高服务效率,直接让FAE结合客户公司私有协议,进行应用开发,细思极恐,本司的嵌入式应用工程师何去何从。


路,在脚下▼

嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论
  • 光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
    晶台光耦 2025-01-09 09:58 79浏览
  • Snyk 是一家为开发人员提供安全平台的公司,致力于协助他们构建安全的应用程序,并为安全团队提供应对数字世界挑战的工具。以下为 Snyk 如何通过 CircleCI 实现其“交付”使命的案例分析。一、Snyk 的挑战随着客户对安全工具需求的不断增长,Snyk 的开发团队面临多重挑战:加速交付的需求:Snyk 的核心目标是为开发者提供更快、更可靠的安全解决方案,但他们的现有 CI/CD 工具(TravisCI)运行缓慢,无法满足快速开发和部署的要求。扩展能力不足:随着团队规模和代码库的不断扩大,S
    艾体宝IT 2025-01-10 15:52 33浏览
  • 在过去十年中,自动驾驶和高级驾驶辅助系统(AD/ADAS)软件与硬件的快速发展对多传感器数据采集的设计需求提出了更高的要求。然而,目前仍缺乏能够高质量集成多传感器数据采集的解决方案。康谋ADTF正是应运而生,它提供了一个广受认可和广泛引用的软件框架,包含模块化的标准化应用程序和工具,旨在为ADAS功能的开发提供一站式体验。一、ADTF的关键之处!无论是奥迪、大众、宝马还是梅赛德斯-奔驰:他们都依赖我们不断发展的ADTF来开发智能驾驶辅助解决方案,直至实现自动驾驶的目标。从新功能的最初构思到批量生
    康谋 2025-01-09 10:04 93浏览
  • 职场是人生的重要战场,既是谋生之地,也是实现个人价值的平台。然而,有些思维方式却会悄无声息地拖住你的后腿,让你原地踏步甚至退步。今天,我们就来聊聊职场中最忌讳的五种思维方式,看看自己有没有中招。1. 固步自封的思维在职场中,最可怕的事情莫过于自满于现状,拒绝学习和改变。世界在不断变化,行业的趋势、技术的革新都在要求我们与时俱进。如果你总觉得自己的方法最优,或者害怕尝试新事物,那就很容易被淘汰。与其等待机会找上门,不如主动出击,保持学习和探索的心态。加入优思学院,可以帮助你快速提升自己,与行业前沿
    优思学院 2025-01-09 15:48 98浏览
  • 1月7日-10日,2025年国际消费电子产品展览会(CES 2025)盛大举行,广和通发布Fibocom AI Stack,赋智千行百业端侧应用。Fibocom AI Stack提供集高性能模组、AI工具链、高性能推理引擎、海量模型、支持与服务一体化的端侧AI解决方案,帮助智能设备快速实现AI能力商用。为适应不同端侧场景的应用,AI Stack具备海量端侧AI模型及行业端侧模型,基于不同等级算力的芯片平台或模组,Fibocom AI Stack可将TensorFlow、PyTorch、ONNX、
    物吾悟小通 2025-01-08 18:17 84浏览
  • 在当前人工智能(AI)与物联网(IoT)的快速发展趋势下,各行各业的数字转型与自动化进程正以惊人的速度持续进行。如今企业在设计与营运技术系统时所面临的挑战不仅是技术本身,更包含硬件设施、第三方软件及配件等复杂的外部因素。然而这些系统往往讲究更精密的设计与高稳定性,哪怕是任何一个小小的问题,都可能对整体业务运作造成严重影响。 POS应用环境与客户需求以本次分享的客户个案为例,该客户是一家全球领先的信息技术服务与数字解决方案提供商,遭遇到一个由他们所开发的POS机(Point of Sal
    百佳泰测试实验室 2025-01-09 17:35 103浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球中空长航时无人机产值达到9009百万美元,2024-2030年期间年复合增长率CAGR为8.0%。 环洋市场咨询机构出版了的【全球中空长航时无人机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球中空长航时无人机总体规模,包括产量、产值、消费量、主要生产地区、主要生产商及市场份额,同时分析中空长航时无人机市场主要驱动因素、阻碍因素、市场机遇、挑战、新产品发布等。报告从中空长航时
    GIRtina 2025-01-09 10:35 98浏览
  • HDMI 2.2 规格将至,开启视听新境界2025年1月6日,HDMI Forum, Inc. 宣布即将发布HDMI规范2.2版本。新HDMI规范为规模庞大的 HDMI 生态系统带来更多选择,为创建、分发和体验理想的终端用户效果提供更先进的解决方案。新技术为电视、电影和游戏工作室等内容制作商在当前和未来提供更高质量的选择,同时实现多种分发平台。96Gbps的更高带宽和新一代 HDMI 固定比率速率传输(Fixed Rate Link)技术为各种设备应用提供更优质的音频和视频。终端用户显示器能以最
    百佳泰测试实验室 2025-01-09 17:33 109浏览
  • 一个真正的质量工程师(QE)必须将一件产品设计的“意图”与系统的可制造性、可服务性以及资源在现实中实现设计和产品的能力结合起来。所以,可以说,这确实是一种工程学科。我们常开玩笑说,质量工程师是工程领域里的「侦探」、「警察」或「律师」,守护神是"墨菲”,信奉的哲学就是「墨菲定律」。(注:墨菲定律是一种启发性原则,常被表述为:任何可能出错的事情最终都会出错。)做质量工程师的,有时会不受欢迎,也会被忽视,甚至可能遭遇主动或被动的阻碍,而一旦出了问题,责任往往就落在质量工程师的头上。虽然质量工程师并不负
    优思学院 2025-01-09 11:48 114浏览
  • 在智能网联汽车中,各种通信技术如2G/3G/4G/5G、GNSS(全球导航卫星系统)、V2X(车联网通信)等在行业内被广泛使用。这些技术让汽车能够实现紧急呼叫、在线娱乐、导航等多种功能。EMC测试就是为了确保在复杂电磁环境下,汽车的通信系统仍然可以正常工作,保护驾乘者的安全。参考《QCT-基于LTE-V2X直连通信的车载信息交互系统技术要求及试验方法-1》标准10.5电磁兼容试验方法,下面将会从整车功能层面为大家解读V2X整车电磁兼容试验的过程。测试过程揭秘1. 设备准备为了进行电磁兼容试验,技
    北汇信息 2025-01-09 11:24 97浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦