Hi,您好,欢迎来到西安盛图软件科技有限公司!

2023年嵌入式开发现状

发布时间:2023-10-20 15:07:31

嵌入式开发环境


就应用而言,嵌入式项目的目标范围很广,大多数倾向于工业自动化和仪器仪表、物联网、通信和汽车;其中特别关注性能、连接性、功率效率和信号处理。

嵌入式项目是针对什么类型的应用开发的

根据调查显示,嵌入式项目开发中,最紧迫的设计挑战是满足性能规格、选择合适的处理器和测试/调试,以及安全性和电源管理。超过三分之一的嵌入式设计包含无线功能,近三分之一的嵌入式设计全部或部分致力于物联网应用,其中大多数用于传感器驱动、工业或移动通信。在安全方面,IP 盗窃、产品篡改和克隆是主要的安全问题,特别是对于大型 OEM 而言。

随着围绕人工智能的持续炒作,今年早些时候进行的一项研究反映了这一点:嵌入式人工智能和机器学习吸引了相当多的关注量,其次是嵌入式视觉和语音功能也是大家关注的重点。与此同时,六分之一的受访者正在从事包含人工智能的嵌入式项目。  

嵌入式人工智能和机器学习引起了广泛关注

研究中的大多数嵌入式开发人员都从事与软件或硬件相关的活动——无论是编写、测试、调试还是共同设计或与参与硬件集成。

事实上,软件占据了开发人力资源的最大份额。同时,专有代码重用比例比硬件或 IP 重用更为常见。

硬件和软件重用正在成为嵌入式系统开发的常态

对于软件开发而言,C 和 C++ 仍然在软件编程语言中占主导地位。这种对 C 语言的偏好在北美以外地区和经验丰富的嵌入式设计人员中尤其明显,而早期专业嵌入式开发人员比他们的老同事更倾向于使用 ADA 或 Java。  


Linux 和 FreeRTOS 并列位居嵌入式开发操作系统榜首


大多数嵌入式项目都以某种形式依赖于操作系统。

在最流行的操作系统列表中,嵌入式 Linux 和 FreeRTOS 位居榜首,其次是 Ubuntu、Debian、Android 和 RTX,最后是 ThreadX。

此外,业界对开源或定制专有解决方案的依赖仍然占主导地位:只有十分之四的项目全部或部分使用商业操作系统。其原因是开发团队除了满足于现有的产品之外,综合成本、易用性、兼容性、安全性等因素考虑,还希望避免只依赖某一家商业供应商。

流行的嵌入式操作系统


多个团队经常更换处理器品牌或系列


在嵌入式领域,使用多个处理器是常态,尤其是在北美设计团队中。

开发人员在有限的设计周期时间内其实并不想更换处理器或是增加处理器,然而,近一半的项目涉及使用与以前不同的处理器,以便获得更丰富的功能,并与具有更好、更清晰的路线图的供应商合作。

四分之一的嵌入式开发人员往往需要在嵌入式开发中迁移到截然不同的处理器系列、架构或供应商的处理器。

更换处理器时的首要考虑因素

调查发现,在嵌入式环境中更换处理器频次比以前想象得更为常见。有许多因素需要考虑,最重要的事项(除了所需的性能和适当的外设之外)都与工具和支持生态系统、强大的软件支持(包括现有代码和中间件的可用性)、硬件工具等问题有关,然后是成本。

数据显示,亚洲开发团队比其他地方更敏锐地意识到和关注其中的大多数问题。    

有趣的是,处理器供应商的品牌在决策过程中起着重要作用。研究发现,意法半导体是最广为人知的微处理器或微控制器供应商(从过去几年的排名来看,该公司的地位有所提高),其次是 Microchip、德州仪器、英特尔和恩智浦。较大的 OEM 厂商对这些特定供应商的认知度更高,并且正如预期的那样,经验丰富的工程师也更了解这些供应商。

处理器供应商的品牌在决策过程中起着重要作用

对于专用数字信号处理器,嵌入式开发的很大一部分似乎已经不会在其设计中使用 DSP。但在考虑该解决方案的企业中,最广泛考虑的是 Microchip 的 dsPIC 和 Analog Devices 的多个系列(ADSP-21xx、SHARC 和 TigerSHARC)。


MATLAB 是使用最广泛的系统级设计工具


尽管基于 FPGA 的原型设计和 System C 或其他 HDL 方法已经占据了一定的市场地位,但 MATLAB 仍然是使用最广泛的系统级设计工具,尤其是在大公司中。

除此之外,LabView 和 Simulink 的使用量较之前有所下降。云集成工具经常用于固件更新和管理安全补丁(尤其是在北美)。

MATLAB 仍然是使用最广泛的系统级设计工具

嵌入式设计团队利用各种软件和硬件设计工具,包括编译器、调试器、示波器、逻辑分析仪、设计环境和软件库等等。

该报告指出,未来嵌入式开发人员将寻找各种软件和硬件工具来协助他们的工作并增强他们的开发环境,其中会主要体现在软件测试以及模拟和仿真工具的改进方面。


上一篇:最新资讯|人红是非多!Rust 社区冲突不断,创始人:别 Call 我了,我也救不了!
下一篇:如何学习嵌入式?