嵌入式软件工程师需要哪些知识

2023-05-16

 最近想不到好的专题,所以与大家一起聊聊,在我眼中,一名优秀的嵌入式软件工程师需要具备哪些能力。

 

 

嵌入式软件工程师需要哪些知识

基本职业技能

编码能力:至少精通C/C++语言进行coding。就嵌入式行业而言,这两种语言用得最多。如果掌握了它们,即便切换到其他语言,难度也不会太大。此外,还包括良好的编码习惯和风格,具体内容可以参看最初几期关于编码规范的一些讨论。关于这个能力,想说明的一点是,良好的编码能力并不等同于指针,数据结构用得多溜,各类运算符优先级记得多牢,代码写得多精简。可维护性,可移植性,可阅读性,可靠健壮性才是更加需要关注的点。

分析问题解决问题能力:这个能力包含几个层面。第一个层面是调试工具的使用熟练度,主要为进行代码调试的时候,结合MCU的特性,如何熟练应用工具进行分析,例如watch/live watch, memory watch,break point设定技巧,插件的使用,查看寄存器找寻HardFault原因。第二层面是问题分析与解决方式方法。之前说过我创建了个QQ群,经常有群友会问各式各样的问题,其中的很多提问者根本就没自己分析过原因,或者根本就不知道怎么去分析。在还没有形成条件反射般的分析能力前,在解决复杂问题时,推荐使用鱼骨图进行分析:先假设可能的原因,理清他们间的前后、因果关系,然后拆分为不同节点去各个击破排除。

 

硬件基础能力:嵌入式软件开发的特殊性要求即便是软件人员也需要具备基本的硬件能力,包括模电,数电,传感器等。

英语:不要以英语不好排斥阅读英文资料,除非猴年马月的时候,中国技术发达到所有芯片都是自己制造,所有技术标准都是自己制定。另外,良好的英语口语和书面能力,能大大拓宽你的就业面。

 

熟悉软件开发流程

大学里面以及培训速成机构很少讲解这方面的理念,所以导致大部分人员习惯性的一上来就开始编码。下图是软件开发编码阶段开始bug引入率,发现率以及修复成本的图例。由此可见,如果缺乏流程上把关,直接进行编码,后期的代价是非常高的。

 

软件最经典的开发流程为V-Model,其他流程体系基本上都大同小异,脱离不了这个模子。这块的能力要求为,要清楚不同阶段要做什么,交付物是什么,做哪些评审和测试保证软件质量。软件流程带来的两个主要好处在于:1. 通过不同阶段的设计开发评审验证测试,保证代码的质量; 2. 建立起闭环的路径,追踪需求在设计开发测试阶段的覆盖率,保存不会有遗漏。

 

 

学习能力

这个能力不仅仅是这一行所要求的,所有行业都要求。并且,对于嵌入式这一行而言,这个能力应该放在第一位。下个月你可能就需要开发不同方向的产品,明年你可能就需要用新的MCU,过几年可能C语言就淘汰。。。如果学习能力弱,节奏跟不上技术的变迁,不久的将来就会被行业淘汰。类似的,学习能力也包含两个方面。第一为学习方法和效率,这个小编学习能力也一般,给不出多好的建议。第二为学习的态度,这个体会就比较深了。作为一名软件小团队的team leader,常常需要分配任务给团队成员。因为产品是全新的方向,所以很多东西需要现学现用。有些成员能很快进入状态,短期内掌握新的知识并应用于新产品开发,有些成员学习进度缓慢,无从下手,需要人为干预才能往前。第二类人员的之所以进展缓慢的通病为,带着畏难不前的心态去学习,总是会以新员工的姿态放宽对自己的要求,认为进度慢是理所当然。带着这样的心态,在我看来是一种自甘堕落的表现,对个人的成长极端不利。

 

行业相关能力

做通讯设备,那就得精通相关的通讯接口和协议,做电源产品,那就得掌握电力电子基本的拓扑和控制方法,做电池管理系统,就得知晓电池特性。

 

还有一些其他的能力,比如说领导力,团队协作能力,沟通技巧这些都是其次的,主要还是自身的技术要硬,想要有过硬的技术不妨咨询一下创客学院,有好的技术老师带,做事情会事半功倍。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式软件工程师需要哪些知识 的相关文章

随机推荐

  • Arduino开发板批量生产

    为什么80 的码农都做不了架构师 xff1f gt gt gt 开发产品也并不是非得集成个Arduino开发板 xff0c 一个核心的控制芯片足以 其实Arduino的核心就是ATMega的AVR单片机 xff0c 只要写入程序 xff0c
  • 解决WIN10系统下PL2303_USB转串口驱动兼容性问题

    出现的问题 自己安装完驱动后能正常使用 xff0c 但是重新插拔之后又不能正常使用了 所以按照这个思路 xff0c 我把WIN10的自动更新给关掉了 xff0c 但是当你接入PL2303 WIN10还是会自动安装驱动 后来是每次使用时 xf
  • BAT-使用BAT方法结束进程(删除进程)

    64 echo off taskkill f im GAM exe taskkill f im GCL10 exe
  • 查看vnc server的日志

    grep vnc var log messages 转自 xff1a http blog csdn net denghua10 article details 39107309
  • 稀疏傅里叶变换(sparse FFT)

    作者 xff1a 桂 时间 xff1a 2018 01 06 14 00 25 链接 xff1a http www cnblogs com xingshansi p 8214122 html 前言 对于数字接收来讲 xff0c 射频域随着带
  • 根据select出来的数据进行update

    update t tbl desc set num 61 b num from t tbl desc a select distinct name as name count name num from t col desc group b
  • 细说Unicode(三) Unicode 番外之附加字符

    在各种论坛上 xff0c 经常会看到一些奇怪的字符 xff0c 它们的内容会超出显示范围 xff0c 举个例子 xff1a 39 Z A L G O 39 常见的还有一些有泰文字符组成的 这里就不举例子了 这些看似乱文的字符是怎么形成的呢
  • Linux 永久修改主机名(转载)

    Linux修改主机名 xff0c 永久生效 linux查看主机名 查看主机命令 xff1a root 64 linux epm2 hostname localhost localdomain localhost localdomain即为默
  • 安装centos7 报错[FAILED] Failed to start Switch Root. see 'systemctl status initrd-switch-root.service' ...

    背景 xff1a 在VMware上安装虚拟机 系统 xff1a CentOS 7 x86 64 Minimal 1804 目前最新的版本 报错截图 xff1a 在安装步骤就报错 xff0c 说明要么是硬件问题 xff0c 要么是系统文件有问
  • 微信聊天记录备份到电脑上还是不能看

    版权声明 xff1a 本文为 testcs dn 微wx笑 原创文章 xff0c 非商用自由转载 保持署名 注明出处 xff0c 谢谢 https blog csdn net testcs dn article details 801241
  • 四种滤波方式

    1 均值滤波 均值滤波 xff0c 是最简单的一种滤波操作 xff0c 输出图像的每一个像素是核窗口内输入图像对应像素的像素的平均值 所有像素加权系数相等 xff0c 其实说白了它就是归一化后的方框滤波 下面开始讲均值滤波的内容吧 均值滤波
  • python中文件处理--判断文件读取结束方法

    一 readline函数 按行遍历读取文件的方法 xff0c 通过这个方法 xff0c readline 每次只读取一行 xff0c 通常比 readlines 慢得多 仅当没有足够内存可以一次读取整个文件时 xff0c 才应该使用 rea
  • 4G模块网络通信

    硬件平台驱动安装AT指令调试 采用内部协议栈 ppp拨号上网 硬件平台 HUAWEI ME909s 821 Windows7操作系统 43 Ubuntu Kylin 14 04操作系统 嵌入式开发板 驱动安装 Windows系统下的模块驱动
  • 如何使用NSOperations和NSOperationQueues(二)

    34 每一个应用程序至少有一个主线程 线程的工作就是去执行一系列的指令 在Cocoa Touch中 xff0c 主线程包含应用程序的主运行回路 几乎所有你写的代码都会在主线程中执行 xff0c 除非你特别创建 34 线程 每一个应用程序至少
  • [转注自官网]Cocos2d-x Tutorial 5 - 碰撞检测(Glede Edition for 2.0.3)

    Chapter5 碰撞检测 主人公能够放子弹了 xff0c 虽然子弹看起来很美 xff0c 但是怎么样来打到妖怪 xff1f 在这一章我们介绍一下最简单的碰撞检测方法去实现它 首先第一个 xff0c 我们有必要保存每个妖怪和子弹的指针 xf
  • Access check table exist before drop it.

    If drop an un exist table will get error 34 Table 39 TempTable 39 does not exist 34 use the following function Here is a
  • 腾讯赵建春:AI浪潮下的高效运维思考及实践

    GOPS 全球运维大会暨首届金牌运维峰会于11月17日 18日在上海圆满举行 腾讯 SNG 助理总经理 GOPS 金牌讲师赵建春老师受邀出席大会 xff0c 并带来精彩演讲 AI 浪潮下的高效运维思考与实践 本文根据此演讲实录整理而成 AI
  • 虚拟机开机连接的时候显示novnc_Linux-KVM虚拟化+websockify(noVNC)

    kvm安装 环境 xff1a centos7 1 查看CPU是否支持inter或AMD的虚拟技术 cat proc cpuinfo grep E 34 vmx svm 34 支持显示 2 安装kvm yum install qemu kvm
  • 云计算部署与管理----Openstack(一)

    一 云计算介绍 基于互联网的相关服务的增加 使用和交付模式 xff1b 这种模式提供可用的 便捷的 按需的网络访问 进入可配置的计算资源共享池 资源包括网络 服务器 存储 应用软件 服务 xff1b 这些资源能够被快速提供 只需投入很少的管
  • 嵌入式软件工程师需要哪些知识

    最近想不到好的专题 xff0c 所以与大家一起聊聊 xff0c 在我眼中 xff0c 一名优秀的嵌入式软件工程师需要具备哪些能力 嵌入式软件工程师需要哪些知识 基本职业技能 编码能力 xff1a 至少精通C C 43 43 语言进行codi