首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

怎么还有人不知道嵌入式软件工程师是干嘛的吖?!

嵌入式软件工程师是做什么的?

聊起这个话题自然和三个关键问题分不开:嵌入式是什么?软件是什么?什么人可以称为软件开发工程师?

嵌入式

嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。

在现实生活中嵌入式设备随处可见,如智能冰箱、空调、电饭煲、语音播报设备、自动检票设备等嵌入式设备已经渗透我们的日常生活。

嵌入式覆盖的行业多种多样,例如智能安防、智能城市、智能医疗、智能农业、工业控制、消费电子、信息通信、移动互联网等都已经结合嵌入式系统产生智能化转变。

嵌入式软件

嵌入式设备能够按照开发者所想进行工作,这离不开嵌入式软件的技术支持。

嵌入式软件是一款基于嵌入式系统设计,根据应用需求定向开发,面向产业、面向市场、面向特定行业的专用软件。不同的嵌入式软件都有自己独特的运用场景和实际价值,和普通的泛用性软件存在一定的差异性。

嵌入式软件的特点:

功能独特

运行稳定可靠

方便裁剪

程序执行效率高,代码体量较小

嵌入式软件的分类大体可以分为两大类:

系统软件

在系统软件中,通常有负责对整体嵌入式设备进行管理、调度和资源分配的嵌入式操作系统,也会有对于嵌入式设备进行运行控制的嵌入式驱动。系统软件的主要功能是为了给嵌入式应用提供更好的功能服务支持。

应用软件

在应用软件中,通常是嵌入式的上层应用程序,例如家居设备的控制面板这类实现功能控制的软件。应用软件的主要功能是负责完成嵌入式设备和使用人员的交互工作,应用软件定义了嵌入式设备的主要功能和使用方法。

一个嵌入式软件的开发流程参考:

软件的功能需求分析

软件的设计

软件的编码

软件的测试

软件的部署和维护

软件开发工程师岗位要求

软件开发,通俗说就是写程序,就是把一串一串的命令组合起来,让它来替我们完成某种特定任务。软件开发工程师就是从事软件开发相关工作的人员的统称。

在软件开发的整个流程中,软件开发工程师最主要负责的阶段是软件的编码阶段,该阶段中软件开发工程师主要负责以下内容:

编写业务代码实现相应的功能

编写单元测试代码确保自己代码的正确性(软件开发工程师除了写业务代码,还要写测试代码,包括单元测试代码和集成测试代码)

在编码阶段内软件开发工程师主要的输出成果:

用户使用手册

可以正常工作的软件

软件系统测试文档(System Test Document)

软件详细测试文档(Detailed Test Document)

当然软件开发工程师不仅仅只是参与软件的编码阶段,还包括软件设计阶段参与总体软件的设计架构环节,了解主体的开发内容在软件的测试阶段配合测试工程师完成项目的主要测试任务,完成软件的BUG修改,最终输出一个具备完整功能稳定运行的软件程序。

嵌入式软件开发工程师必备技能

嵌入式软件开发工程师的主要职责就是完成嵌入式软件开发工作的工作人员,而想要成为一个嵌入式软件开发工程师需要具备以下能力:

1

知识基础

计算机科学基础:掌握计算机组成原理、操作系统、数据结构、算法分析等基础知识。

编程语言:精通至少一种编程语言(如C/C++)或者汇编,熟悉其语法、内存管理、异常处理等特性。了解其他常用编程语言如Python,Java等。

嵌入式系统原理:理解嵌入式系统的架构、工作模式、硬件接口(如GPIO、UART、I²C、SPI、ADC、DMA等)、实时操作系统(RTOS)的基本概念。

微处理器与微控制器:学习主流嵌入式平台(如ARM Cortex系列、RISC-V、MIPS等)的架构、指令集、外设接口等知识。了解不同厂商的MCU(如STM32、ESP32等)及其特点。

电路与电子学基础:了解基本的电路理论、模拟电子技术和数字逻辑,能够阅读和理解电路图。

2

职业技能

编程能力:通过编写大量的代码实践,提升编程技巧,包括代码规范、调试技巧、版本控制(如Git)等。

嵌入式常见开发工具的使用:熟练使用编辑器(如VsCode)、编译器(如GCC)、调试器(如GDB)等。

实时操作系统(RTOS):掌握至少一种RTOS(如FreeRTOS)的使用,包括任务创建与调度、信号量、互斥锁、消息队列、定时器等。

驱动开发:学习编写设备驱动程序,如GPIO控制、UART通信、IIC/SPI总线操作等。

硬件接口调试:掌握使用示波器、逻辑分析仪等工具进行硬件接口信号的观测与分析。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OncmKIynE5En0DlK910PjrTw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券