想了解这个问题的人,可能很多都是打算从事或学习嵌入式的,那么在了解这个问题前,给大家做一些铺垫。
首先,我们可以一起看一下嵌入式的定义。根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监控或者辅助设备、机器和车间运行的装置”。而目前国内比较认同的定义是:以应用为中心、以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
从定义我们就可以看出嵌入式系统是软件硬件的综合体。如果还不太清楚,我们可以一起来看一下目前市面上的一些嵌入式产品。传统嵌入式产品:空调主控模块、冰箱主控模块、家用遥控器、智能手机、教学投影仪、音响系统、雷达系统、路由器等等。前沿嵌入式产品:无人机、智能音响、机器人控制、城市天眼系统、智能家具、自动驾驶汽车、扫地机器人、小米手环等等。可以看到嵌入式产品几乎遍布了我们生活的方方面面,那么从事嵌入式开发的工程师的发展前景还需要细说吗?
当然我们还可以从一些大公司的动向看出来。在16年的时候,京东老板刘强东说在未来十年将减少一半的员工,让AI和机器人来取代。同年,富士康投入4万台机器人取代人工,裁员6万人。同样的在生活中还有银行柜员,餐厅服务员等也都已经出现机器人。在2017年国务院也发布了《新一代人工智能能发展规划》。虽然有的人可能会说人工智能与嵌入式有何关系?我可以很肯定的告诉你,人工智能不可能没有嵌入式,可以说嵌入式开启了人工智能的进程。由于目前行业发展的趋势,和国家政府的扶持,华为、阿里、百度也纷纷加入,打算分得一杯羹。
从上面我们已经对嵌入式有了一个大致的了解了,那么对嵌入式工程师这一岗位可以做进一步了解,目前的嵌入式开发主要分为嵌入式驱动开发、嵌入式系统开发、嵌入式软件开发。
嵌入式驱动工程师:编写和移植各种芯片驱动(如音频芯片),优化硬件设备驱动(如温湿度传感器),得精通各种硬件接口协议(如I2C协议)、系统调度、信号量、锁机制等等,开发难度最大。该类开发者一般是软硬件综合型人才,一般的嵌入式驱动工程师指Linux上的驱动开发工程师,需要精通Linux驱动框架(platform框架、input子系统框架等),结合芯片本身去编写驱动,驱动的好坏很大程度上决定一个产品的好坏。
嵌入式系统工程师:主要是编写固件,根据不同平台移植操作系统,根据应用场景来优化系统,需要熟悉整个操作系统组成与调度,对固件的稳定性高求很高,如果系统不稳定,驱动和应用也是白做的。
嵌入式应用工程师:编写业务逻辑程序,调用驱动工程师提供的接口控制设备,软件开发过程所涉内容范围非常广,主要使用C语言开发,但经常会涉及C++、Java、python、JavaScript、PHP等各类语言以及各种脚本语言、数据库、前端后台、各种通讯协议、甚至一些从来没听过的协议或概念,需要很强的学习能力,该职位也是各大公司需量最大的,一般10人的开发小组,驱动开发与系统开发与应用开发的比例是1:2:7。
在了解了这么多以后,还要说的一点就是,根据相关的数据显示,我国每年的嵌入式行业人才缺口基本在50万人左右,这么大的缺口,这么火热的发展,相信嵌入式工程师的发展前景大家也能看得到了。