0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FW工程师是干什么的

工程师人生 来源:工程师吴畏 2019-03-13 15:08 次阅读

我的第二份工作算是搞软件的,招聘的时候说是 软件工程师,但上班后发现,在公司里大家叫我 FW ,汉语发音为 fen wei(分位),这是相对于HW 的叫法。刚开始的时候,我一直没弄明白什么是FW?就像很多外行的人听到这个名字一样。那么 FW 到底是什么样子的职位?一个优秀的 FW工程师 应该具有什么样的品质?

FW 实际上是 FirmWare 的缩写,就像 HW 是 HardWare 的缩写一样,但是很多人都明白 HW 是硬件工程师,是每天和电路原理图、PCB板子以及电烙铁、示波器打交道的工作。在现代词典里,HardWare的解释是:硬件;FirmWare的解释是:(计算机的)固件(指存储在存储器而非软件中的指令)。由此可以理解成:在电子系统中,存储在如Flash里面的,开机后自动启动,控制电子系统以响应用户操作,也就是嵌入式软件工程师职位的一个分支。但是,这样的理解却并不是对 FW工程师 的准确表述,他们有着自己特殊处境,有着自己独特于嵌入式软件工程师的特殊点。

做一个纵向的对比以帮助我们更好理解 FW工程师。实际上,FW工程师 是夹在软件工程师(SW)和硬件工程师(HW)中间的那个职位。

软件工程师(SW)的工作是写程序产品,他们的工作就是根据系统架构完成特定模块中的特定部分的编程工作,是一种纯粹的写代码的工作。即便是底层程序开发人员,他们的编码工作也仅仅需要理解目标硬件接口的特性,只需要弄明白在什么情况下需要用控制位将硬件设定在正确的状态,就可以安心的去写他们的代码了。

硬件工程师(HW)的工作主要是把一个电路原理图,做成一个正确的硬件电路板。这中间又有更进一步的分工,电路原理图有专门的设计人员,PCB实现有专门的Layout人员,以及EMC等等,他们各司其职。普通意义上的 HW工程师 实际上就是根据电路原理图,协调Layout、EMC以及工厂方面人员,完成产品设计,主导期间出现的问题,并与FW工程师配合,完成产品设计,并编制BOM,将产品导入工厂进行批量生产。

FW工程师 就是SW和HW中间的那个角色。他们不需要编写大量的代码,因为他们的Source Code是芯片商的软件开发团队开发好的,基本上已经实现的所有的功能,他们不需要自己动手编写。所以称他们嵌入式软件工程师是十分勉强的。但他们的工作是在一个已经能够正常工作的Source Code的基础上,根据特定的需要完成一些改变(就整个Source Code来讲,这些改变实在是小的可怜)。在某种意义上,他们的工作和软件维护人员的工作差不多。他们和软件开发人员有着明显的界限,在遇到困难的时候都可以寻求软件开发人员的帮助(对于FW工程师,就是找芯片商的技术支持部门,如果其技术支持人员搞不定,他们会进一步寻求其软件开发团队的帮助);他们都需要对整个Source Code有个大概上的认识,要知道代码在运行期间的主流程,要清楚Source Code有多少模块和这些模块的作用。他们在日常工作中,常常会根据产品差异化的需求而改变OSD(On Screen Display),有时候需要对UI控制方面做比较大的手术;常常会为一个不同供应商的硬件做一些正确的初始化设定,因而要细心阅读其datasheet,确保正确控制其按预期的方式工作;常常会细心的调节个别Register的值,反复验证以得到期望的最佳效果;常常要根据HW的改动,而修给必要的GPIO通道的设定;常常为了一个Bug而苦思冥想数日,不断的反复的尝试以定位对应的代码段……

他们不需要有十分扎实的程序基础,不需要有出色的程序设计能力,不需要知道数据库,不需要知道复杂的数据结构……他们需要熟悉的就是这个Source Code使用的语言(一般是C),需要能够看懂代码,可能需要了解操作系统原理(某些Source Code的底层是多任务的嵌入式操作系统),需要能看懂常见的电路(要能够基本理解整个硬件系统的工作原理,实际就是了解HW上的信号流),需要熟练使用示波器(某些Bug的分析常常需要使用示波器分析波形)。

最为重要的是他们需要一定的理解能力,需要有比较好的想象力。他们只有比较透彻地理解整个Source Code才能迅速的定位Bug,需要通过想象来猜测被打包封装的部分代码的功能。

他们不是真正意义上的程序员,也算不上真正意义上的嵌入式软件开发人员,他们是程序员和硬件工程师中间的那个人,那个配合硬件工程师和专业的软件工程师之间的过渡体,一边是从专业程序员那里取得软件成品,再根据项目需要配合HW改造出自己需要的Firmware,烧录到Flash里面的“固件”。

如何成为一个优秀的FW工程师?优秀的FW工程师应该具有哪些品质?请关注后续文章。

FW工程师 是一个基本上可以说是个低级的职业,在薪水链条里面处于底层。那么他们的出路在哪里?在职业规划上,他们应该怎样向薪水链条的上游过度?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1553

    浏览量

    67513
收藏 人收藏

    评论

    相关推荐

    美国云服务器是干什么的

    美国云服务器主要用于提供计算资源、托管网站、应用程序以及存储数据等。很多用户想要了解美国云服务器具体是干什么的,rak部落小编为您整理发布美国云服务器是干什么的。 美国云服务器是一种
    的头像 发表于 04-10 10:16 106次阅读

    美国云服务器是干什么的

    对于美国服务器是干什么的,相信很多小白用户不是非常了解,接下来小编就为您整理发布美国云服务器是干什么的相关资讯,希望对您有帮助。
    的头像 发表于 02-19 09:53 211次阅读

    云服务器是干什么的

     云服务器是干什么的?很多小白用户会有疑惑,今天小编为您整理云服务器是干什么的相关资料,希望对您了解云服务器是干什么的有帮助。
    的头像 发表于 02-18 09:58 700次阅读

    什么是温补晶振?温补晶振是干什么的

    什么是温补晶振?温补晶振是干什么的?  温补晶振是指对晶体振荡器进行温度补偿的一种技术。晶体振荡器是一种电子设备,通过驱动晶体谐振频率上的机械振动来产生稳定的电信号。它在现代电子设备中广
    的头像 发表于 01-23 16:42 318次阅读

    云服务器是干什么的?服务器的主要功能有哪些?

    云服务器是干什么的,主要功能是什么?相信很多技术人员已经很了解,但是对于其他行业的人群云服务器又有什么用呢?拥有云服务器有什么用处呢,RAKsmart小编今天来为您做详细的解答。
    的头像 发表于 01-09 09:48 314次阅读

    LCR数字电桥的原理是什么?LCR数字电桥是用来干什么的

    LCR数字电桥的原理是什么?LCR数字电桥是用来干什么的? LCR数字电桥原理的详解 LCR数字电桥是一种测试电路中被称为LCR元件的电感、电容和电阻的值的仪器。通过测量该元件在不同频率下的电压
    的头像 发表于 12-21 15:37 903次阅读

    LVDS中的时钟脉冲信号是干什么的

    LVDS中的时钟脉冲信号是干什么的? LVDS(Low Voltage Differential Signaling)中的时钟脉冲信号(Clock)是用于同步数据传输的,是整个LVDS接口的重要
    的头像 发表于 10-18 15:38 804次阅读

    盘古大模型是干什么的,一文浅谈盘古大模型

    。 什么是华为盘古大模型?盘古大模型是干什么的? 着人工智能技术的不断发展,越来越多的企业开始关注AI技术在各个领域的应用。作为一家全球领先的通信技术供应商,华为一直致力于在人工智能领域进行研究和创新。盘古大模型是
    的头像 发表于 08-31 11:45 4371次阅读

    盘古大模型是干什么的 盘古大模型如何申请

    盘古大模型是干什么的 盘古大模型如何申请  盘古大模型是什么? 盘古大模型是一种基于人工智能和高性能计算技术的多尺度、多物理场的仿真工具,能够模拟物理场和材料场的总体行为,是姜启源院士团队
    的头像 发表于 08-31 10:16 1.3w次阅读

    什么是阻焊,阻焊的目的是干什么

    什么是阻焊,阻焊的目的是干什么
    的头像 发表于 08-28 07:45 3152次阅读

    手机里的npu是什么意思?手机npu是干什么的

    手机芯片里的NPU是什么?手机里的npu是什么意思?手机npu是干什么的? 随着智能手机的发展、人工智能技术的成熟,一种新型芯片——神经处理单元(NPU)开始进入手机领域,成为智能手机的标配之一
    的头像 发表于 08-27 17:08 3340次阅读

    新唐的BSP包是用来干什么用的?

    新唐的BSP包是用来干什么用的?小白一个。。。毕设要做NANO120的HID协议
    发表于 08-25 07:02

    人工智能技术应用是干什么的

    人工智能技术应用是干什么的 人工智能技术应用是指将人工智能算法与计算机技术相结合,构建出具有智能的应用程序或者系统,以实现各种智能化的应用。人工智能技术的应用已经广泛应用于各个领域,如医疗、金融
    的头像 发表于 08-17 11:46 2642次阅读

    人工智能技术应用是干什么的

    人工智能技术应用是干什么的 随着科技的发展,人工智能技术应用已经逐渐渗透到我们的生活中,大大方便了人们的生活和工作。从互联网搜索引擎到自动化机器人,从智能家居到自动驾驶汽车,人工智能技术已经成为
    的头像 发表于 08-17 11:46 876次阅读

    人工智能训练师是干什么的

    人工智能训练师是干什么的 随着人工智能(AI)技术的发展,训练机器人、算法和系统变得尤为重要。本文将探讨人工智能训练师的角色和职责,并解释他们如何帮助培养和开发AI技术。 人工智能训练
    的头像 发表于 08-15 16:03 1684次阅读