武夷山网站推广,如何做一家专门卖零食的网站,活动策划公司,校园网站建设年度工作计划文章转自https://luomuxiaoxiao.com/?p170一、嵌入式系统要明白什么是嵌入式软件工程师#xff0c;我们先从嵌入式系统#xff08;嵌入式设备#xff09;说起。维基百科上对嵌入式系统的定义如下#xff1a;嵌入式系统#xff08;Embedded System#xff09;#xff0c… 文章转自https://luomuxiaoxiao.com/?p170一、嵌入式系统要明白什么是嵌入式软件工程师我们先从嵌入式系统嵌入式设备说起。维基百科上对嵌入式系统的定义如下嵌入式系统Embedded System是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。通俗的讲嵌入式系统就是一种具有专一功能的计算机系统。我们身边就有好多嵌入式设备常见的比如智能手机数码相机等消费类的电子设备再比如最近几年兴起的诸如智能音箱、智能电视、扫地机器人智能家居设备。当然还包括汽车防抱死系统、各种医疗成像系统等设备。总之各行各业我们都有可能接触到它尤其随着智能化时代的到来很多非智能的设备也将逐步由嵌入式设备所替代典型的如智能门锁。二、嵌入式工程师随着嵌入式设备应用越来越广泛相关人才的需求也越来越大。那么相关的人才都有哪些呢其中最主要的就是嵌入式工程师。嵌入式工程师分为两种嵌入式硬件工程师和嵌入式软件工程师。嵌入式硬件工程师主要职责是负责设计嵌入式系统的硬件原理图使用相应的工具画出PCB图后期配合嵌入式软件工程师调试系统。嵌入式软件工程师从系统软件上又可以分为两种BSP工程师和嵌入式应用软件工程师。嵌入式应用软件工程师主要是负责编写基于嵌入式系统的应用软件。类似于基于windows上的QQ word。由于我本人是做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等代码阅读软件这个就因个人喜好而不同了比如opengroksource insightvim下ctags/cscope插件组合等。