打造IC人才
科技生态圈

新手小白怎么学习嵌入式硬件开发?

发布时间:2023-01-03

来源:IC修真院

随着嵌入式技术的普及,硬件工程师的性质也有所改变。嵌入式硬件工程师与我们平常所说的硬件工程师不同。嵌入式硬件工程不但要求具备硬件工程师的基本技能,还必须完成部分软件工程师的工作,例如:底层驱动的开发、嵌入式操作系统的裁剪,移植:GUI、文件系统等软件的移植;基于嵌入式操作系统的底层驱动程序的设计等。

一个合格的嵌入式硬件工程师,不仅要懂得硬件电路的设计和制作,还需要懂得固件程序的设计和调试,只有这样才能算完整的硬件工程师。当然,也分单片机嵌入式工程师和Linux嵌入式系统硬件工程师,前者更容易些,后者相对较复杂。

嵌入式硬件工程师

1、基本电路知识

嵌入式硬件也是需要许多电路搭建起来的,学习嵌入式之前必须对电路基本知识有一定基础。了解常用的基本器件,基本仪器使用,具有一定的电路分析能力。这样你才能看得懂嵌入式系统的硬件电路图,才能为后续开发奠定基础。

2、基本语言知识

嵌入式驱动程序编写需要用到C语言,因此在学习嵌入式之前还必须熟练C语言基本语法,并能编写些普通程序代码。这里需要提醒,在学习C语言时养成规范的编程习惯,如添加备注、注意排版等,这将对以后的程序准确性有很大影响。

3、单片机(51单片机)

初学者首次接触嵌入式处理器一般都是51单片机,51单片机入门相对简单,并且通用度比较高,可以购买开发板动手学习。如学习编写流水灯、按键扫描、数码管、液晶显示、AD/DA采样等简单程序。

4、基于单片机的电子系统自设计

有了前面的学习经历,可自己脱离开发板,自己设计并绘制电路图,自己焊接或者生产PCB板,设计小型的电子系统。如设计一个寻线小车,温度采集、时钟显示等嵌入式系统。

5、430、STM32、Cortex-M3(可选)

430单片机、STM32以及Cortex-M3处理器作为学习嵌入式操作系统前的过渡阶段,各位朋友可以自行选择学习。为什么需要用他们来过渡呢?

因为51单片机内部寄存器很少,编写程序时不需要对GPIO口进行配置,默认就已经是输入或者输出。而当处理器功能强大之后,往往一个GPIO可实现多种 功能,如USB功能、IIC功能、UART功能。在使用这种GPIO时就必须先进行配置,才能满足需求。因此在学习后面操作系统之前,有时间的同学可以从 这些单片机过渡,这样不至于后续学习摸不到头脑。

6、ARM9/ARM11裸机学习

裸机程序编写,即不带操作系统的程序编写,其作用和上面430单片机的作用相似,目地就是为了熟悉ARM架构,对ARM寄存器有深入的了解,这将对以后的 驱动程序编写带来很大的方便。同样,裸机程序学习可像51单片机一样,购买开发板,在开发板上进行一些中断、GPIO、UART的操作。

7、Linux系统移植&BOOTLOADER

嵌入式系统学习特别注意又特别难的地方就是Linux系统移植,对于系统的移植、系统的裁剪是学习的难点。搭建嵌入式操作系统的开发环境,即交叉编译环境也比较麻烦,因此在学习过程中一定要一步一步动手实践操作。

BOOTLOADER是操作系统启动前,进行硬件初始化以及搭建操作系统运行环境的一段代码,有点类似于PC机的BIOS程序。BOOTLOADER主要与硬件关系很大,需对处理器寄存器相当的熟悉,因此在初期学习的时候可以参考U-boot等学习。

嵌入式硬件工程师需要学会的基础技能

1.由需求分析到总体方案、详细设计的规划创造能力;

2.熟练运用设计工具,设计原理图、PCB板的能力;

3.熟练运用单片机、DSP、PLD、FPGA等进行软硬件开发调试的能力;

4.熟练运用仿真工具、示波器、信号发生器、逻辑分析仪等调测硬件的能力;

5.掌握常用的标准电路的设计能力,如复位电路、常用滤波器电路、功放电路、高速信号传输线的匹配电路等;

6.故障定位、解决问题的能力;

7.设计文档的组织编写技能

如果你具备了上面这些基本技能,那么可以恭喜你,你可以作为一个普通的硬件工程师了,你也可以往一名真正的嵌入式硬件工程师靠拢。

相关推荐:

嵌入式硬件和嵌入式软件的区别

嵌入式硬件工程师与硬件工程师的区别

嵌入式硬件工程师需要掌握什么

推荐阅读

换一换