2023年11月9日

四BSP工程师应具备的能力

作者 admin

1. 嵌入式系统

要了解什么是嵌入式软件工程师,我们先从嵌入式系统(嵌入式设备)开始。 维基百科对嵌入式系统的定义如下:

嵌入式系统是嵌入机械或电气系统内部、具有专门功能和实时计算性能的计算机系统。

通俗地说,嵌入式系统就是具有专门功能的计算机系统。 我们身边有很多嵌入式设备,比如智能手机、数码相机等消费电子设备,以及近年来兴起的智能音箱、智能电视、扫地机器人等智能家居设备。 当然,还包括汽车防抱死制动系统、各种医学成像系统等设备。 总之,我们在各行各业都有可能接触到它,尤其是随着智能时代的到来,很多非智能设备将逐渐被嵌入式设备取代,比如智能门锁。

2.嵌入式工程师

随着嵌入式设备的应用越来越广泛,对相关人才的需求也越来越大。 那么相关人才是谁呢? 其中最主要的是嵌入式工程师。 嵌入式工程师有两种类型:嵌入式硬件工程师和嵌入式软件工程师。

47d12ec5b32cbde2198ed78ad35f8911.png/

3.BSP工程师

BSP,全称是Board Support Package,中文意思是板级支持包。 BSP工程师,顾名思义,负责板级支持包的开发​​、调试和维护。 那么什么是主板支持包? 正如我们之前提到的,嵌入式硬件工程师负责设计硬件并绘制PCB图。 工厂会根据PCB图生产相应的电路板。 嵌入式系统仅仅有电路板是不够的,还需要有相应的软件支持。 软件开发的前提是首先使单板正常稳定工作,然后在其上编写相应的应用软件,实现其特有的功能。 使板卡正常稳定工作的代码属于板级支持包。

那么BSP工程师的具体工作有哪些呢?

让我们从嵌入式设备开始。 我们之前讨论过很多嵌入式设备。 从系统角度来看,其中一些设备运行操作系统,有些则不运行。 对于不运行操作系统的设备,其功能比较简单,使用的主控芯片一般也比较简单,比如现在流行的51系列单片机、stm系列单片机等。 对于这些简单的系统,对软件开发人员的要求相对较低。 当然,它没有我前面提到的分工那么详细。 有时候连画板、灯光、开发都是一个人完成的。 对于运行操作系统的设备来说,情况有所不同。 一般来说,运行操作系统的设备的软件开发分为三个阶段:

1.点亮黑板

第一批主板出厂时没有任何软件。 BSP工程师需要根据硬件原理图修改从芯片制造商获得的参考代码并调试板子,使板子上的操作系统能够正常稳定地工作,从而提供稳定的开发和调试环境。 这个过程称为点亮板子,行话称为Bringup。 。 对于 BSP 工程师来说,这是最有价值的工作之一,因为它需要 BSP 工程师拥有广度和深度的知识。 会涉及到计算机原理、操作系统、处理器架构等,还有一些硬件方面的知识。 综合起来,它的核心工作就是内核的移植和剪裁。

2. 启用板上所有设备

前一阶段,主板的CPU和基础器件已经正常工作。 该阶段将启用所有外设,并为后续开发的应用提供相应的软件控制接口。 这个过程的实质就是相应操作系统下驱动程序开发的过程。 需要掌握硬件的工作原理和操作系统的相关知识。

3. 开发板应用程序

前面提到,嵌入式系统是一个具有特定功能的系统,其上的所有硬件和软件都应该服务于该功能。 第二阶段结束后,板上所有器件都可以正常使用。 这一阶段的任务是开发一个应用程序来实现特定的功能。 应用程序将使用第二阶段提供的软件接口来控制板上的器件来完成此功能。

4、BSP工程师应具备的能力

上述前两个阶段属于BSP开发的内容,第三阶段属于嵌入式应用软件开发的过程。 综上所述,BSP工程师应具备的主要能力有:

当然,作为一名软件开发人员,还必须掌握一些通用软件,比如:

c280fc451766bcbc75f7589919f6525e.png/