很多对嵌入式行业不了解的人会以为嵌入式就是单纯搞单片机的工作。甚至有很多专业学生也抱有这种观念。
这种现象的原因在于大学专业中没有专门针对嵌入式行业的完善专业体系。嵌入式的知识体系庞大,不同的方向需要的知识差异很大。关于嵌入式学习路线,网络上的答案五花八门,没有统一的标准,对求学者来说很不友好。
学习嵌入式的人主要有两类专业背景,一类是电子类,一类是计算机类。电子类专业通常会从硬件学到软件,计算机类专业则从软件学到硬件。
个人更倾向于电子类学习的方向,因为从硬件过渡到软件相对来说简单。但纯粹从软件开始,没有接触过硬件,这个过程就会变得困难。这也说明了嵌入式行业对工程师既要求掌握软件知识,也要掌握硬件知识,只是侧重点不同。
当然本科不是相关专业的同学也别着急,我们这里准备了一系列实操课程、实战项目、大厂面试题目,点击此处,供大家免费参考、学习~
接下来分析一下嵌入式的大体方向,主要分为软件和硬件两个方向。
嵌入式硬件方向:
负责产品的硬件电路原理图设计,PCB板设计,选择适合的元器件,进行硬件电路板的焊接和调试,确保硬件电路板的可靠性、稳定性和抗干扰能力。由于集成电路快速发展,大部分集成电路厂商都会提供参考电路,因此相对而言,硬件电路原理图设计较为简单。硬件工程师的工作重点在于产品的可靠性、稳定性设计以及电磁兼容设计。一个有经验的嵌入式硬件工程师的年薪在10万至30万之间。
嵌入式软件方向可以具体分为三类:
1. 嵌入式驱动工程师
负责编写和移植各种芯片驱动程序(如音频芯片),优化硬件设备驱动(如温湿度传感器),精通各种硬件接口协议(如I2C协议)、系统调度、信号量、锁机制等。
2. 嵌入式系统工程师
主要负责编写固件,根据不同的平台移植操作系统,根据应用场景优化系统。需要熟悉整个操作系统的构成和调度,对固件的稳定性有很高的要求。如果系统不稳定,驱动和应用程序的工作也就没有意义。
3. 嵌入式应用工程师
负责编写业务逻辑程序,调用驱动工程师提供的接口控制设备。嵌入式应用工程师的工作范围非常广泛,涉及的软件开发内容非常多。主要使用C语言进行开发,但经常会涉及到C++、Java、Python、JavaScript、PHP等各种语言以及各种脚本语言、数据库、前端和后台开发、各种通信协议,甚至一些不常见的协议或概念。