嵌入式软件工程师是干啥的?

 2023-09-05 阅读 283 评论 0

摘要:文章目录 前言 一、啥是软件? 二、什么是嵌入式软件 三、嵌入式软件如何开发 三、嵌入式软件工程师知识技能 编程语言知识: 自动控制知识: 硬件基础知识: 开发工具使用: 软件架构设计: 软件开发流程: 英语阅读能力:

文章目录

前言

一、啥是软件?

二、什么是嵌入式软件

三、嵌入式软件如何开发

三、嵌入式软件工程师知识技能

编程语言知识:

自动控制知识:

硬件基础知识:

开发工具使用:

软件架构设计:

软件开发流程:

英语阅读能力:

产品相关知识:

总结


前言

当今社会已经进入知识大爆发的年代,各种智能化设备层出不穷,软件开发成为当前最受追捧的技术,因此我们首先从了解嵌入式软件工程师开始吧!

一、啥是软件?

互联网这个风口持续已经很多了年了,网络上到处都有高薪招聘搞软件的程序员需求。但是软件到底是个啥呢?百度百科对软件的定义是:能够在运行时提供所要求功能和性能的指令或计算机程序集合,程序能够满意地处理信息的数据结构,以及描述程序功能需求以及程序如何操作和使用所要求的文档。简而言之,软件就是程序加文档。在我们日常生活中软件随处可见,计算机,家用电器,电子设备等等都包含有运行的程序。

二、什么是嵌入式软件

在计算机里面都有Windows操作系统,然后再安装各种各样的应用软件,那么我们在生活中随处可见从电子设备产品就不可能把计算机的操作系统安装进去,但是又要实现各种复制的计算和控制,怎么办呢?因此,就需要给它设计一套小小的可以嵌在里面的脑系统,这个大脑有多聪明,就要看它的软件了。这个嵌在里面的脑系统就是一个嵌入式计算机系统,那么我们可以这样定义:隐藏在一些更大的系统中,管理控制这些系统,并带有微处理器的专用软硬件系统称为嵌入式计算机系统,通常称为嵌入式系统。嵌入式系统是运行在嵌入式芯片中的,很多人学习嵌入式软件都是从51单片机开始,流水灯基本是每一个嵌入式软件工程师的第一堂必修课,这几年随着芯片技术的发展,很多学校都已经从STM32开始教学了,玩的也都是更高级的机器人、无人机之类的了。

三、嵌入式软件如何开发

嵌入式软件也是由程序员开发的,网上到处都是各种互联网公司的程序猿和程序媛的介绍,甚至看多了各种科幻电影,大家对程序员的印象是这样的:

图片来源网络,侵删

要么是这样的:

图片来源网络,侵删

实际上搞嵌入式软件开发的程序员,我们也叫嵌入式软件工程师,根据其岗位特性,基本上以产品为中心,按照开发流程开展工作,根据不同公司的岗位设计,嵌入式软件工程师也会有不同的细分工作内容。一般相对规范的公司,嵌入式软件开发都会按照目前行业内成熟的V流程模式进行开发:

三、嵌入式软件工程师知识技能

前面介绍了嵌入式软件和相应的开发流程,那么成为一名嵌入式软件工程师需要什么技能要求呢?话说隔行如隔山,各行各业都有个中的特点,但是万变不离其宗,任何一项工作的开展都是个人基础技能和相关能力的综合表现。从我个人的经验来说,对于嵌入式软件工程师技能要求可以参考下面的维度模型:

  • 编程语言知识:

嵌入式软件主要以C语言为主,因此需要具备一定C语言编程能力,相信很多人在大学里都学过谭浩强的《C 程序设计》;

  • 自动控制知识:

嵌入式软件是运行在嵌入式芯片中,主要目的是为了实现对各种信号的采集,通过相关的软件算法,最终达到对外围设备控制的目的。因此,需要具备一定的自动控制原理基础知识,了解常用的控制方式和控制策略;

  • 硬件基础知识:

嵌入式软件最终目的是为了实现对硬件和外围设备的控制,嵌入式软件工程师就需要具备相应的硬件   基础知识,能够看懂硬件图纸,了解基础的元器件工作原理,熟悉STM、NXP、英飞凌、瑞萨等单片 机知识;

  • 开发工具使用:

嵌入式软件工程师需要能够使用软件开发IDE进行程序的编写和调试,然后在硬件上验证软件功能是  否符合设计要求,这是一个软硬件结合的过程。因此,软件开发时需要根据选用的芯片平台,能够熟练使用如Keil、CodeWarrior、IAR、Tasking等IDE;软件调试时需要用电示波器、万用表等硬件测试工具;软件测试时需要用到QAC、Tessy等相应的静态和动态测试软件工具;为保证软件开发的追溯和过程管控,就需要用到SVN和Git等版本管控工具。此外,随着技术的发展,目前很多应用算法类的嵌入式软件都已经使用基于模型的开发方法,就需要熟悉Matlab和Simulink相关软件的使用;

  • 软件架构设计:

嵌入式软件虽然没有Windows这么高深,但是其实现的功能也是非常复杂的,因此,在嵌入式软件开发时也需要对软件架构进行设计,确保运行的效率,在一些复杂的产品还需要用到嵌入式操作系统,常见的如Ucos、FreeRTOS等,在汽车行业则需要用到行业内通用的AutoSAR;

  • 软件开发流程:

 为了保证嵌入式软件的可靠性,如前面介绍一般采用V流程开发模式,嵌入式软件工程师需要熟悉相应的开发流程,掌握每一个环节需要开展的工作内容和相应的输出交付,确保最终释放的软件不存在BUG;

  • 英语阅读能力:

在当今社会英语是每一个工程师的基础技能,前面介绍的所有技能要求的大部分资料可能都是英文,而中文经过5000年的发展,含义是博大精深,有时候你虽然看到有一些中文翻译资料,本来想偷个懒取个巧,最后却被带沟里了,因此建议还是老老实实去阅读原版英文资料;

  • 产品相关知识:

如果你已经具备了前面介绍的这些技能,那么恭喜你已经知道如何去开发嵌入式软件了。但是,八仙过海各显神通,都还是需要落实到对应的产品去,需要把你具备的技能和产品功能的需求相结合,开发出产品使用的嵌入式软件。


总结

日常生活中,大家看到很多电子设备,一眼看起来都很简单,但里面都运行了复杂的嵌入式软件。来吧,欢迎你成为一名嵌入式软件工程师,后面我们也会详细介绍相关的知识,让我们一起去探索嵌入式软件的神奇宇宙!

想获取更多及时资讯,可以关注我的微信公众号,第一时间收到文章推送!

免责声明:本文素材部分来源于网络,版权归原作者所有,如有涉及侵权,请与我联系删除

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/531.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息