网志

Tenderfoot:嵌入式软件和固件专业

马修·埃斯莱曼2017年8月20日10条评论

很久以前(七年前) 我回答了有关堆栈溢出的问题。然后是斯蒂芬 建议我把答案变成博客文章. Great idea! 这个 post dives deeper into the original question: “Is it possible to fragment this field (embedded software 和 firmware) into sub-fields?”

这个 post represents a detailed 和 updated response to my original Stack Overflow answer. I hope this post provides guidance 和 useful information to the “tenderfoots” in the audience.

对于有经验的嵌入式系统工程师,请阅读本文:请发表评论并注明我忽略的您喜欢的任何专业。

汇编语言专家

每个嵌入式软件工程师都必须了解C。此外,我建议每个嵌入式软件工程师都应使用C ++。但是,有些工程师必须理解并成为汇编语言方面的专家。这些工程师被要求将RTOS移植到新的微控制器上,或从受成本限制的嵌入式系统中压缩每一个性能下降。熟练的汇编语言专家可以通过简单地将应用程序优化为更小/更便宜的微控制器版本来潜在地为公司节省数百万美元的重复费用,这确实是一项宝贵的技能。话虽这么说,多年来,我个人只编写了很少的汇编代码,主要是在应用程序需要访问特定的专用CPU指令(例如, 霓虹灯 instruction set. If an engineer loves the idea of counting every CPU cycle 和 understanding every detail of their target microcontroller’s CPU architecture, then this is a great 专业 to explore.

设备驱动程序专员

The engineer that specializes in device drivers must be comfortable living between a standard desktop operating system 和/or RTOS 和 the target hardware to be controlled by the application software. 这个 specialist must be comfortable with laboratory tools such as oscilloscopes or logic analyzers. They must be able to think in hex 和 understand the critical nature of timing related to the target hardware. 这个 engineer reads device data sheets for fun at night 和 is excited about creating the perfect driver for a new device. Additionally, they love to study the nuances of an acronym soup of buses, interconnects, 和 memory access systems: I2C, SPI, USB, UARTs, DMA, PCI, MMU, 和 related technologies.

DSP专员

Digital Signal Processing seems to be its own sub-specialty of embedded, although perhaps a software engineer may not fully understand the exact algorithm details 和 may only be implementing what a system or electrical engineer requires. 怎么样ever, understanding sampling rate theory, FFTs, 和 foundational elements from digital signal processing theory is handy 和 likely required. 这个 specialist must be aware of timing 和 the target hardware's restrictions (sampling rate, noise, bits per sample, etc.) An embedded software engineer specializing in DSP software must also understand the target DSP’s architecture 和 especially the DSP’s specialized instructions for parallel execution 和/or optimization of common DSP algorithms. 这个 specialist should know at least one of the common modeling environments for DSP algorithms: MATLAB, SciLab, Python (with Numpy, Scipi, etc), among others.

控制理论专家

Conceptually the same as our DSP专员. 这个 specialist is familiar with various families of motors, sensors, 和 other controllers handled by a microcontroller. 这个 specialist should understand a Bode plot, some Laplace transforms or two, 和 higher math skills. 这个 specialist likely operates in a robotics industry or creates software for guided missiles, counter-measures, or perhaps even counter-counter measures.

Although I passed my required control theory class in college, I know the least about this 专业. 评论 appreciated!

网络和物联网专家

在七年前的原始答案中,我将其称为“网络专家”。如今,借助包含Wi-Fi和/或蓝牙的微控制器的自成一体的制造商样式模块,有助于创造物联网(IoT)及其相关流行语的爆炸式增长,我们现在当然必须在此描述中添加“ IoT” 。网络和物联网专家应该与PC网络专家所期望的技能相匹配:套接字,路由器,访问点,TCP / IP,HTTP,WebSocket,JSON,OSI模型,DNS,DHCP,Wi-Fi等。然后,该工程师必须添加有关如何在资源受限的嵌入式系统环境中应用这些技能的其他知识。该专家应该知道如何在其本地网络或在AWS或Azure上启动测试服务器,从而在最终生产后端处于开发中或不可用时,启用测试端点来帮助目标嵌入式设备的开发。为了实现最大价值:充分了解AWS和Azure IoT产品,了解各种受支持产品和相关的网络应用程序级别协议的优缺点:HTTP,WebSocket,MQTT,AMQP,TLS等。目前这是一个HOT域。

设备和网络安全专家

这个 specialty was added after the original post thanks to helpful reader comments. 这个 specialist is likely the same person as our IoT specialist. Yet, perhaps not, as security concerns may extend beyond the IoT. For example: how secure is the firmware? Does the MCU/SoC support a secure boot process? 怎么样 does the device update process validate 和 approve software updates? Does the device allow network connections? Is the device running embedded Linux, 和 if so, how easy is it for a hacker to access a Linux shell? Will sensitive end-customer data be exposed in any manner, perhaps using HTTP instead of HTTPS, or a standard TCP socket instead of TLS? These are the many concerns of a security specialist. 这个 person should probably understand the difference between AES128, Triple DES, Blowfish, 和 other encryption algorithms. In the modern era of connectivity 和 professional hackers, this specialist will always be learning 和 adapting to the latest security challenges.

用户界面(UI)专家

由于高级手机目前在几乎每个人的日常生活中具有主导地位,因此许多嵌入式系统现在都包含了动态且丰富的用户界面。创建高质量用户界面所涉及的软件框架和开发挑战本身就是一项专业。应对所有智能手机应用程序开发人员所面临的挑战(用户体验,性能,易用性,响应性等),然后添加资源受限的嵌入式系统的所有挑战。然后,工程师在为嵌入式系统的用户界面设计软件时,将几乎完整地了解所涉及的问题领域。例如,挑战可能包括:了解图形硬件功能和局限性,选择或设计适合设备要求的用户界面软件框架,设计和编写代码以管理资源(例如位图和布局,国际化问题,字符串翻译,字符串编码,以及永无止境的产品变体。许多挑战都受到市场营销人员和图形设计师的追捧,唯一不变的就是改变!致力于这一领域的工程师将面临许多挑战,以保持积极的智力快乐!

嵌入式软件/系统架构

我不确定我是如何在最初的答案中错过这个专业的,因为这是我在撰写Stack Overflow响应时的主要重点和责任。这个职位和专业通常适用于工程团队超过六个成员的大型项目。嵌入式软件和/或系统架构师将承担许多责任,也许包括:总体软件设计,系统设计,需求收集,设计文档,任务描述,维护和改进编码标准,团队领导,设置或领导内部技术标准,解决团队成员技术纠纷,指导,与外部工程合作伙伴或设计团队的对接以及为项目规划做出贡献。辛苦了准备旅行,因为与其他工程师相比,架构师将花费更多时间从远方的合作伙伴和客户那里收集信息和要求。建筑师通常至少必须是本职位列出的其他两个或三个专业的“专家”。架构师一直在平衡实际的实际问题与理论软件设计概念。建筑师必须仔细听取实施其设计的团队的意见。白板是架构师的朋友,Word和Visio是用于交流和记录架构的常用工具。个人提示:架构师应为自己分配一个软件模块,以便在团队的系统中进行编码和维护。这将使架构师的手变脏,并帮助架构师感觉到团队的痛点。领导并帮助解决这些痛点,团队将迅速成长为世界一流的软件开发团队。

行业

此外,作为一个温柔的脚,请注意,每个行业本身都是专业。消费电子,军事,航空电子,机器人技术,工业机械,医疗设备等。每个行业满足一套独特的产品要求,与不同的政府机构合作,并且可能在独特的商业和融资环境中生存或死亡。例如,如果工程师决定进入与国防部相关行业的职业,由于一个政客的投票,他们的工作很可能被淘汰。相反,由于消费电子行业的激烈竞争性质,一支健康的工程团队可能会被淘汰。了解并了解您的目标行业,并随时为变化做好准备。

到此,我准备结束这篇文章。我期待有关此主题的评论和其他想法。我特别希望这篇文章对我们观众中的“嫩脚”有用。


[-]
评论者 影子加布里埃尔2017年8月23日

那么安全性呢?

[-]
评论者 马修·埃斯莱曼2017年8月24日

我添加了一个新部分...再次感谢您!

[-]
评论者 马修·埃斯莱曼2017年8月23日

哎哟!好点子!您将如何在文章中表达或添加?

[-]
评论者 jms_nh2017年8月23日
这是IMHO网络区域的一部分...加密+安全性。
[-]
评论者 淡淡的2017年11月9日

你好 Matthew, I definitely agree with the categories. I just need to add one more that is almost extincted, but yet is needed now more than ever before. 这个 is the "all around engineer" that does a bit of everything. I agree that specialization is necessary, but until 20+ years ago the engineers were all-around engineers. They knew maths, physics, programming, electronic design, product management e.t.c. They could handle a project from the concept idea to the final production 和 everything between. I was lucky enough to meet a few remaining old-school engineers, but most of them have ended their careers.

令人遗憾的是,我在公司环境中工作,所以很多专业工程师由于彼此之间不了解而无法交流和合作。由于工程师无法交流,因此浪费了大量的人力和财力。那不是因为他们很愚蠢,而是因为他们只了解自己的艺术。

至少在欧洲,需要全方位的工程师,但目前还没有很大的需求,因为公司也没有意识到他们需要他们。

[-]
评论者 马修·埃斯莱曼2017年11月10日

好点!我知道*一个*(实际上可能是两个)在所有类型工程师中,他很乐于与他合作。 

较大的公司环境往往会专门化人员配备,并且也会对工程沟通产生负面影响。也许是双重打击。

感谢您的评论!

[-]
评论者 tilak12017年8月22日

先生,这是一篇很棒的文章,我最近在这个主题上读过!
好吧,你的自我已经变得一脚掌,以便对这些领域有更多的了解:)

[-]
评论者 马修·埃斯莱曼2017年8月22日

谢谢!很高兴听到您喜欢这篇文章。

[-]
评论者 善变的手指十月16,2017

你好 ,  I'm just an old retired guy who was bouncing around the web, 和 landed here. Although reading through some of the the technical aspects of some of the blogs, to me anyway, was akin to holding one's tongue to a 9v battery, it hurts, but not enough to stop, I really enjoyed some of the quality writing you fellows shared. 这个 reply is under the article I enjoyed the most, but there were others as well. I think Mathew exposed some layers of the software engineering field that some tenderfoots may not have been aware of. And he wrote it so even an old tech-naught like myself gleened a bit of knowledge. Thank you all.

[-]
评论者 Anastasia_Stefanuk2018年3月1日

很棒的文章!很高兴看到您在此处加入了物联网。机器学习呢? IoT段落中可能已经提到了它。无论如何,物联网是我们所有人都应该感兴趣的东西。阅读有关智能家居,城市等的信息确实很有趣。似乎物联网项目是最有趣的项目之一。另一方面,招聘人员在需要聘请像样的人时遇到了一些麻烦 物联网开发人员。虽然这张照片也应该会有所帮助。top-10-iot-technologies_70041.jpg


要发布对评论的回复,请单击每个评论所附的“回复”按钮。要发布新评论(而不是回复评论),请查看评论顶部的“写评论”标签。

注册后,您可以参加所有相关网站上的论坛,并获得所有pdf下载的访问权限。

注册

我同意 使用条款隐私政策.

试试我们偶尔但很受欢迎的时事通讯。非常容易退订。
或登录