市面上那么多岗位,那些是硬件?

嵌入式软件工程师则主要负责嵌入式设备上的软件开发工作,与传统软件工程师不同。传统的软件工程师通常开发PC或服务器上运行的应用程序,所依赖的操作系统大多是Windows、Linux等,而嵌入式软件工程师的工作环境则是诸如Wince、VxWorks、Linux等嵌入式操作系统。

一、嵌入式软件工程师的工作通常包括:

1. 应用程序开发:根据客户需求开发嵌入式设备上的应用程序,如智能家居设备、医疗仪器的用户界面等。

2. 嵌入式开发工具的使用:使用专门的开发工具,如Wince下的EVC(Embedded Visual C++)或Linux下的QT等。

3. 底层软件设计:尽管嵌入式软件工程师的主要工作在上层软件,但有时也需要参与到底层驱动的设计和调试中,确保上层应用与硬件的协调。

二、嵌入式硬件工程师与嵌入式软件工程师的区别

1. 工作性质的区别

嵌入式硬件工程师主要负责设计和搭建硬件平台,为软件工程师提供开发环境。硬件工程师的工作更像建筑师,设计并构建产品的硬件基础;而嵌入式软件工程师则像室内设计师,为产品增添功能和美感。

硬件工程师的工作重点在于确保电路的正常工作以及各种外设和芯片的兼容性,他们在设计时需要考虑以下几个关键问题:

- 功耗:控制电路设计的功耗,特别是在便携式设备中,这一因素尤为重要。

- 电磁干扰(EMI):确保电路不会干扰其他设备,也不容易受到外部干扰的影响。

- 生产可行性:电路设计不仅要满足功能需求,还需考虑生产的便捷性和成本。

- 可靠性:设计要能经受住长时间的使用和环境考验。

而软件工程师则专注于通过编写代码实现产品的功能,他们的主要职责包括应用程序开发、操作系统移植、以及优化软件性能等。

2. 项目依赖的差异

硬件的设计在整个项目中尤为关键。没有硬件,软件无法运行;但是在某些嵌入式系统中,硬件产品可以独立工作,比如简单的单片机应用无需操作系统支持。这种情况下,硬件工程师往往需要负责从硬件设计到功能实现的所有工作。而软件工程师在某些项目中可以缺席,特别是在没有复杂操作系统或用户交互界面的系统中。

3. 就业形式的差异

国内嵌入式软件工程师的就业市场较为广泛,培训资源也多,因此入门较为简单。硬件工程师由于门槛较高,需要深入的电路设计知识和实践经验,因此市场需求相对较少,但核心硬件开发人员的需求始终存在。

一旦硬件产品定型,软件的升级和维护成本较低,因此在后期,企业会更依赖软件开发来提高产品的功能和竞争力,这也导致嵌入式软件工程师在企业中的需求量较大。

三 实际开发应用技术

硬件工程师:主要负责底层硬件设计,需要掌握处理器(如ARM9,DSP,Nios II,FPGA)、PCB(如EMC设计与仿真)、通讯(如IIC,IIS,SPI,UART,CAN总线,RS232,PSTN Modem,网络,GPRS通信)等知识。

驱动开发工程师:主要负责底层和上层的通讯,需要掌握系统(如Linux非实时系统/VXworks实时系统+架构/文件系统)、内核与BOOT(如内核裁剪与移植、boot loader和驱动编写)、上层接口(如USB,网口)、底层接口(如SPI、UART、IIC、I2S,CAN)等知识。

软件工程师:主要负责上层应用软件,需要掌握CPU(如51/MSP430/ARM7/ARM9)、外设(如AD/DA、UART、USB、LCD)、总线和通讯接口(如I2C,SPI,RS232,RS484,CAN,USB,以太网)、环境(如Linux/QNX+ARM汇编)、GUI(如VC++/VC#/LABVIEW)等知识。

系统开发工程师:主要负责系统架构设计。

DSP软件工程师:主要负责数字信号处理部分,需要掌握CPU(如TI DM642/648/6467、TI C6000、TMS320C5000、Freescale StarCore)、算法(如熟悉图像、音频、视频相关处理算法)、接口与驱动(如网络协议(MAC、IP、UDP、TCP)等)、操作系统(如架构设计和操作系统配置)等知识。

全网最受欢迎的嵌入式面经

文章卖点:

  • 系统梳理: 32篇精华,12w+字,构建完整知识框架,告别零散!
  • 直击考点: 覆盖全部最新面试必问点,复习精准高效!
  • 持续更新: 紧跟市场动态,消除信息差焦虑!

订阅量已破 3100+,价格即将上涨!现在订阅最划算! 早准备,早拿 Offer!

https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM

全部评论

相关推荐

从实习转为正式员工已经是第三个月了,对字节也有了一些新的认识。字节作为阮开仁的梦中情司确实是有他吸引人的地方,但各位萌新也需要评估自己是否适合,能够融入,给大家简单列一下我得理解,如果大家觉得自己没问题,请大胆放心冲~1.实习生当校招生用,校招生当1~3年的同学用。这点的体会是很明显的,首先,字节给新人的landing时间是比较短的,今年组内很多实习同学基本landing不到一周都会上手自己的第一个需求(可能跟团队比较缺人有关系),在这边你很难有整块的时间去上手新的技术栈和框架,只能提前准备或者练中学,字节强度名不虚传。不过来到这里的人实力肯定没得说,并且也有足够强的学习能力,顺利上手肯定没问题。这种强度下的成长也是飞速的。2.要有足够的自驱力和一定的“自我pua”能力。前段时间看到一个帖子的评论,大概是说:很多大厂校招的时候已经筛掉了自驱力不强,责任心不够,抗压能力不够的选手,留下的都是能够自我pua,自发把工作做到最好的人。我狠狠点了。仔细想想确实是这样的,需求估分少了的时候,会为了不delay周末主动加班;为了解决一个问题,会主动研究到十点十一点。同时还需要能够自驱自己钻研问题,解决问题,总结问题。想来字节的你是否有这样的能力?3.心态好&细心。字节会需要你同时具备这二者。心态太好的人可能会不够细心,这体现在估分通常不给自己留够buffer,代码提测后bug特多等。而太细心的人可能抗压能力和心态不会太好,因为处处留心精神可能太过紧绷,也需要你有一定的松弛感。字节作为自己的校招第一站肯定是利远大于弊的,但找到最合适自己的工作更重要,毕竟自己决定你工作是否顺心的不仅仅是你的一腔热血和干劲,还有环境。祝大家校招顺利!
熊大不大:态度决定一切,菜也要笑脸相迎
字节跳动工作体验
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务