【Linux基础知识】如何成为一名优秀的嵌入式工程师

发布 : Linux培训      来源:Linux干货资料

2019-12-05 14:16:22

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

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

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。

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

二、学习路径和重点

确实,我们嵌入式工程师需要掌握的知识很多,上述的每个知识点都可以展开作为一个单独学科或者专题进行讨论。上面繁多的技能要求可能让很多同学望而生畏,不过我们嵌入式工程师的任务主要是工程实现,而不是理论研究,因此对于上面的知识点,我们不需要特别深入的了解,只需要在概念、原理和实践方向进行理解和转化,让我们在工程实践中能受这些理论的指导,利用这些理论完成设计和调试即可。

有一些同学有这样的疑问:我以后的工作目标是嵌入式软件工程师,那我还需要硬件部分的知识吗?这个问题的答案是肯定的,主要有以下2个原因:

1. 嵌入式工程师没有严格的软硬件区分。

嵌入式工程师在实际工作中要不断和硬件打交道,硬件工程师提供了原理图和PCB布局布线图,我们嵌入式工程师要根据数据手册,器件编程指南以及硬件工程师提供的原理图进行软件设计,需要对设计进行上板验证,需要调试除错,这都需要我们有扎实的硬件设计功底,否则就需要不断的去找硬件工程师来咨询,必然会拖慢整个项目的进度。

2. 要想成为优秀的嵌入式软件工程师,一定要熟知硬件知识。

优秀的嵌入式工程师会参与项目的需求分析,器件选型等硬件设计工作,这不仅需要我们有丰富的行业经验,更需要我们有扎实的硬件基础。

另外,驱动编写等工作要求我们必须清晰的了解硬件的特性,如总线速度、时延、单双工模式、是否有缓冲、是否支持DMA等等,了解硬件的特性才能充分挖掘硬件潜力,提升速度和稳定性。

又如,在和硬件工程师一起调试设备问题时,嵌入式软件工程师需要根据硬件特点编写对应的测试程序,如并行总线的数据相位测试、串行差分信号的眼图测试,都需要嵌入式软件工程师编写对应的测试程序。如果嵌入式软件工程师没有相应的硬件知识,沟通成本会陡然增加,项目延期风险也就大大增加了。

综上,要做优秀的嵌入式工程师,而不是浑浑噩噩混日子的小工,就要严格要求自己,把硬件知识也补上来。

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

领取零基础自学IT资源

涉及方向有Java、Web前端、UI设计、软件测试、python等科目,内容包含学习路线、视频、源码等

点击申请领取资料

点击查看资料详情 

收起 


 相关推荐

问题解答专区
返回顶部