什么是BSP工程师?(什么是bsp工程师)

嵌入式系统


要明白什么是嵌入式软件工程师,我们先从嵌入式系统(嵌入式设备)说起。维基百科上对嵌入式系统的定义如下:

嵌入式系统(Embedded System),是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。

通俗的讲,嵌入式系统就是一种具有专一功能的计算机系统。我们身边就有好多嵌入式设备,常见的比如智能手机,数码相机等消费类的电子设备,再比如最近几年兴起的诸如智能音箱、智能电视、扫地机器人智能家居设备。当然还包括汽车防抱死系统、各种医疗成像系统等设备。总之各行各业我们都有可能接触到它,尤其随着智能化时代的到来,很多非智能的设备也将逐步由嵌入式设备所替代,典型的如智能门锁。


嵌入式工程师

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

  • 嵌入式硬件工程师主要职责是负责设计嵌入式系统的硬件原理图,使用相应的工具画出PCB图,后期配合嵌入式软件工程师调试系统。

  • 嵌入式软件工程师从系统软件上又可以分为两种:BSP工程师嵌入式应用软件工程师嵌入式应用软件工程师主要是负责编写基于嵌入式系统的应用软件。类似于基于windows上的QQ,word。由于我本人是做BSP的,因此这里我们着重讨论BSP工程师。

什么是BSP工程师?(什么是bsp工程师)

BSP工程师


BSP,全称Board Support Package,汉语意思即板级支持包BSP工程师,顾名思义就是负责板级支持包的开发、调试和维护工作。那么什么是板级支持包呢?前面我们讲过,嵌入式硬件工程师负责设计硬件,画出PCB图,工厂会根据PCB图生产出对应的电路板。一个嵌入式系统光有电路板是不够的,还要有对应的软件支持,软件开发的前提是首先使板子正常稳定的工作,然后再在其上编写对应的应用软件以实现其特有的功能。其中使板子正常稳定的工作的代码就属于板级支持包。

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

我们首先从嵌入式设备谈起,前面我们谈到了很多的嵌入式设备,从系统角度来讲这些设备有些是跑操作系统的,有些没有跑。对于不跑操作系统的设备来讲,其功能相对简单一点,使用的主控芯片一般也比较简单,比如风靡一时的51系列单片机、stm系列的单片机。对于这些简单系统来讲,它对软件开发人员要求相对比较低,当然也就没有我前面所说的分工那么详细,有时候甚至从画板、点亮、开发都是由一个人来完成的。对于跑操作系统来讲的设备,就不一样了。


一般来讲,跑操作系统的设备其软件开发分三个阶段:

1. 点亮板子

第一批板子出厂时是不包含任何软件的。BSP工程师需要结合硬件原理图修改从芯片厂商拿到的参考代码,调试板子,使板子上的操作系统能够正常稳定工作,从而提供一个稳定的开发调试环境,这个过程叫做点亮板子,行话叫做Bringup

这属于BSP工程师最具有价值含量的工作之一,因为它对BSP工程师所掌握的知识的广度和深度都有一定要求。其中会涉及到计算机原理、操作系统,处理器架构等,还包括硬件方面的一些知识。综合起来其最核心的工作就是对内核的移植、裁剪。

2. 使能板子上所有设备

上个阶段中,板子的CPU和基本的器件已经能正常工作,这个阶段中将使能所有的外设,并为后面要开发的应用程序提供对应的软件控制接口。这个过程的实质是对应的操作系统下驱动开发的过程,需要掌握硬件工作的原理,操作系统的相关知识。

3. 为板子开发应用程序

如前文所述,嵌入式系统是一个具有专一功能的系统,其上所有的硬件,软件都应该为这一功能服务。第二个阶段结束的时候,板子上所有的设备都已经可以正常使用了。这个阶段的任务就是开发应用程序来实现某种特定的功能,应用程序中会使用第二阶段提供的软件接口控制板子上的设备来完成这一功能。


BSP工程师应具备的能力

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

  • 掌握计算机原理方面的知识;

  • 掌握操作系统的相关知识,深入研究某种操作系统,目前来讲,研究linux操作系统应该是大部分人的选择;

  • 基本的linux(开发环境)操作

  • 精湛的C语言功底和一定的C /汇编的知识。

  • 掌握一定的硬件和电路原理方面的知识;

  • 熟悉常见的接口协议,如I2C, SPI, UART, USB等。

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

  • 代码管理软件,常见的如git等;

  • 代码阅读软件,这个就因个人喜好而不同了,比如:opengrok,source insight,vim下ctags/cscope插件组合等。

声明:本文转载自嵌入式Linux,如涉及作品内容、版权和其它问题,请于联系工作人员,我们将在第一时间和您对接删除处理!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年5月8日 上午9:53
下一篇 2023年5月9日 上午8:03

相关推荐

  • 全面提升基层党建质量 引领基层治理效能提升(提升党建引领基层治理水平)

    广州日报讯 (全媒体记者吴城华 通讯员史伟宗)日前,广州市委常委会召开会议,深入学习贯彻全国城市基层党建引领基层治理工作电视电话会议精神,研究我市贯彻落实意见。市委书记林克庆主持。…

    科研百科 2023年2月18日
    339
  • 智慧运维:基于 BIM 技术的可视化管理系统(bim可视化运维管理平台)

    前言 近年来,随着新一代信息技术的不断发展和应用,以及国家对于“新基建”布局的加速,我国地铁站信息化建设步入快速发展阶段。同时,地铁车站的空间环境也变得复杂多样。反映在地铁空间环境…

    科研百科 2022年10月22日
    244
  • 这些专业被称为女生专业黑名单,建议慎重报考。记得收藏保…(有哪些专业女生)

    瞧一瞧女生专业黑名单。如果你家里有女儿这3类专业不要报。 第一类工作场景在户外的不要报。例如土木工程测绘地质、船舶与海洋工程等。 第二类科研与生产不同步的,需要高学历才有发展的专业…

    科研百科 2024年4月3日
    45
  • 档案管理经费

    档案管理经费:保障国家历史文明传承的重要投入 档案是记录和传承国家历史文明的重要资源,也是衡量一个国家历史文明程度的重要标志。然而,随着现代化的进程,档案的保存和保护面临着越来越重…

    科研百科 2024年9月11日
    33
  • 大学生科研项目选题人文社会科学

    大学生科研项目选题人文社会科学 人文社会科学是大学教育中非常重要的一个领域,它涵盖了文学、历史、哲学、社会学、心理学等多个学科,对于提升学生的人文素养和综合素质具有非常重要的意义。…

    科研百科 2024年4月9日
    51
  • 嵌入式软件开发流程(个人心得)(嵌入式软件的开发流程)

    一 背景刚从学校出来实习那会儿,在深圳南山某龙电控公司上班,职位是售后维修,用伺服电机控制绣花机,有个显示终端应该用的是桌面系统。一进公司就开始修板子,在经过一番培训之后就出去驻场…

    科研百科 2024年8月7日
    61
  • 收支业务管理岗位同一人办理

    在收支业务管理岗位,同一人办理业务的情况很常见。这种情况下,需要对各项收支业务进行规范化管理,以确保财务工作的高效性和准确性。作为收支业务管理岗位的同一人,我们需要具备良好的沟通能…

    科研百科 2024年10月28日
    0
  • 好用的项目管理系统

    好用的项目管理系统可以提高项目管理的效率和质量,从而提高工作效率和项目完成质量。一个好的项目管理系统可以帮助项目管理人员更好地管理项目,并确保项目按时完成。 项目管理系统是一种软件…

    科研百科 2024年5月26日
    67
  • 管理员工用什么软件

    管理员工用什么软件 随着现代企业的不断发展,管理员工成为了企业日常运营中不可或缺的一部分。为了更好地管理员工,许多企业选择使用管理软件来辅助他们。今天,我们将会谈论一些常用的管理员…

    科研百科 2025年1月5日
    0
  • 开源移动 gis

    开源移动GIS:让地理数据随时随地可用 随着移动设备的普及,越来越多的人开始使用GIS技术来探索和记录他们的地理空间。GIS技术是一种广泛应用于各个领域的技术,包括土地利用规划、环…

    科研百科 2024年10月24日
    0