嵌入式开发的学习路线(上)

2020-04-07 10:23发布

嵌入式开发有着悠久的历史,随着物联网和端级AI的兴起,我们迎来了嵌入式开发新的风潮。相应的岗位空缺不断涌现,技术人才也变得越发珍贵。然而,嵌入式开发对工程师较为全面的要求又让很多同学望而却步。从何学起,以什么样的学习路线稳步推进就成了摆在嵌入式开发学习面前的首要问题。本文以作者的学习经验和体会,为大家阐述一种学习路径,供各位同学参考。


一、嵌入式工程师必备技能总览

在介绍学习路径之前,我们先来了解一下要成为一个优秀的嵌入式开发工程师,需要具备哪些技能。我们从硬件和软件两部分来介绍。


v 硬件部分:

1. 了解主要器件(电阻、电容、电感、各类二极管、三极管、场效应管、逻辑门电路等)。

2. 熟悉万用表的用法,熟悉以上器件的测试方法和测试原理。

3. 了解器件封装的常见类型和特点(直插、表贴、QFNP、BGA、SOT等)。

4. 掌握使用示波器、逻辑分析仪进行测量的方法。

5. 熟知常见器件间通信方式和总线。

6. 能熟练阅读器件手册(datasheet)并根据项目需求对器件进行选型、电路原理图绘制、电路板布局布线,配合结构工艺完成电路板设计。

7. 能根据故障现象对电路板进行测量排查,找出错误并修正。

8. 掌握基本的手焊、拆焊、飞线技能。


v 软件部分:

1. 熟练掌握C语言,熟悉位操作,位段和对齐方式等概念。

2. 掌握基本的汇编语言。

3. 熟悉编译连接的过程和编译指令。

4. 理解程序运行中堆与栈的分配和使用。

5. 熟悉linux系统操作和gcc编译工具、Makefile编写。

6. 熟悉主流嵌入式CPU的架构(如ARM)

7. 熟悉内核态和用户态,了解不同程序运行的状态和编程注意事项。

8. 熟悉系统引导流程,能移植uboot和操作系统,构建根文件系统和设备树。

9. 掌握各类驱动程序模块的编写方法和编译方法。

10. 熟悉网络编程原理和数据库编程。

11. 了解UART,IIS,IIC,CAN,SPI等接口协议并能调试相关设备。

12. 了解至少一种物联网应用层协议如MQTT等。

13. 了解常见的低功耗无线通信模块的使用如wifi,蓝牙,ZigBee。