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

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

3天内不再提示

用于嵌入式系统的Java的优点和缺点

星星科技指导员 来源:嵌入式计算设计 作者:Kaique Mancoso 2022-07-01 10:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

IoT、UI/UX 和 AI嵌入式系统每天都变得越来越复杂。过去只有一两个功能的产品,现在为用户提供了更多的实用程序,要求用户界面反映体验。物联网正在改变我们处理硬件的方式,确保实现互联、自动化甚至更智能的日常工作。Java 是最常用的编程语言之一,特别是因为它易于开发和跨平台。但是,Java 在嵌入式系统的开发中还没有被广泛采用。事实上,C/C++ 仍然是嵌入式系统最流行的编程语言。大约 80% 的嵌入式系统项目是用 C/C++ 编写的,但未来不会这样。可能会采用新的语言来满足市场增长。使用 C/C++ 构建项目非常耗时,而且很难找到或培训新的 C/C++ 专业人员。本文的目的是展示使用 Java 进行嵌入式系统开发的主要优点,以及这种语言的缺点(以及处理和解决这些缺点的建议方法)。

物联网和嵌入式系统与 Java

多年来,从事嵌入式系统开发的专业人员数量显着增加。当然,这类专业人员与从事桌面和移动应用程序开发的人数之间存在巨大差异。但是,据 IC Insights 称,用于嵌入式设备的 MPU 的销售额将在三年内与智能手机处于同一水平。

一般来说,机器都配备了真正的技术武器库。我们周围的产品,如汽车和家用电器,都具有响应不同事件和人类需求要求的能力。在这种情况下,物联网代表的不是未来趋势,而是正在发生的事情。这也可以在工业环境中看到。工业自动化需要更多的连接性、数据分析,当然还有新的仪表板。

考虑到所有这些,有必要关注未来的期望。尽管 C 和 C++ 需要更少的内存和 CPU 周期,但 Java 应该被视为嵌入式系统的更好选择,因为它是最适合大型项目的最有组织的编程语言之一。Java 具有适合嵌入式系统环境的理想特性,包括可移植性、代码重用、可靠性、安全性、WEB 以及与其他嵌入式系统的连接。为了提供嵌入式世界将需要(并且已经在要求)的东西,使用像 Java 这样的高级语言很重要。此外,世界上有很多Java开发人员,迁移到嵌入式系统对他们来说应该不是问题。

在嵌入式系统上使用 Java 的优势

使用 Java 为嵌入式设备开发应用程序,除了最好的语言质量外,还可以保证减少用于项目创建的时间和成本,这要归功于用途的多样性和现有的支持。那么,让我们看看为什么应该将 Java 用于嵌入式系统的其他一些原因:

上市时间很重要,可以缩短开发时间:Java 具有理想的内存管理,并且更容易检测错误(并修复错误);

推荐用于超过 5 个屏幕的 GUI 项目;

从第一个版本开始就很坚固(感谢包概念、设计模式和 SOLID 原则);

简单;

可移植到不同的 CPU 或操作系统(无需重写代码);

安全性,支持加密敏感数据;

大量独立于操作系统的库;

可在桌面和远程调试;

高级语言和高性能方面的最佳折衷方案(取决于使用的虚拟机);

看起来很完美!但是(就像世界上的一切一样)也有一些缺点。让我们看看 Java 对嵌入式系统的挑战。

在嵌入式系统中使用 Java 的缺点

选择 Java 有很多充分的理由。但是,在嵌入式系统上使用 Java 存在三个主要缺点:

Java 相当冗长。

它复杂而庞大(217 个包,4240 个类);

性能低下。

甚至 Oracle 自己也创建了 Java SE Embedded 来解决这类问题,并为嵌入式设备优化了虚拟机。但是,对于大量针对低端设备的项目来说,这还不够。

这种担忧一直是 Java 进入嵌入式系统的主要障碍。但好消息是,有一些新技术旨在解决所有这些问题。

适用于嵌入式系统的低占用空间和高性能

为了实现这个目标,有必要找到完整的 Java 和 Java 虚拟机的替代方案。在这种情况下,TotalCross是一个有趣的框架。

TotalCross 是一个用于嵌入式系统的 SDK,它使用自己的虚拟机,称为 TotalCross 虚拟机 (TCVM)。TCVM 不是基于堆栈的 JVM,而是基于寄存器的虚拟机。这在运行时间上有很大的不同,因为它减少了加载的指令数量。正如您在以下示例中所见,一个简单的操作在 JVM 上加载了 4 条指令,而在 TCVM 上运行时只加载了一条。

除了 TCVM 之外,还根据统计研究创建了一种称为 TotalCross 字节码的优化字节码,以识别对性能影响较大的最常用函数。除了这些函数减少指令数量的压力外,这种优化的字节码还确保了低占用空间,因为它使用了一个名为 Nano Java 的 Java 子集,它只有 86 个包和 1184 个类(完整 Java 的 1/4)。

TotalCross 没有使用所有的 Java 架构,而只使用了嵌入式应用程序开发所必需的。所有这些特性为嵌入式系统提供了 5MB 的占用空间和高性能。

结论

在嵌入式系统上使用 Java 的优点多于缺点,特别是因为代码的质量和大量已经能够使用 Java 编程的人。在嵌入式系统领域拥有 Java 社区尤其重要,因为它是编程世界中的第三大社区。但是,正如我们所见,占地面积和性能会影响项目结果。因此,建议使用能够打破这些障碍的替代方案,例如 TotalCross 框架。有了它,就可以享受 Java 的所有优点,同时仍然保证嵌入式系统的低占用空间和高性能。

审核编辑:郭婷

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

    关注

    5186

    文章

    20143

    浏览量

    328671
  • AI
    AI
    +关注

    关注

    89

    文章

    38085

    浏览量

    296330
  • IOT
    IOT
    +关注

    关注

    189

    文章

    4368

    浏览量

    206503
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式与FPGA的区别

    ,一是嵌入式软件开发,主要与嵌入式cao作系统、应用软件等有关。第二是嵌入式硬件开发,需要掌握硬件设计、模拟仿真、 PCB设计等技能。 ✅2、FPGA:它是在PAL、GAL、CPLD等
    发表于 11-20 07:12

    嵌入式系统的定义和应用领域

    嵌入式系统,简而言之,就是一种专为特定设备或装置设计的计算机系统。它们通常配备一个嵌入式处理器,其控制程序被存储在ROM中。这些系统在许多日
    发表于 11-17 06:49

    嵌入式实时操作系统的特点

    实时嵌入式操作系统(Real-Time Embedded Operating System)是专门设计用于嵌入式系统的实时操作
    发表于 11-13 06:30

    Java 在物联网与嵌入式系统中的应用前景与挑战

    的生态系统和强大的社区支持,Java 在智能家居、工业控制、可穿戴设备等场景中展现出独特优势。本文将探讨 Java嵌入式与物联网中的应用价值、技术特点以及未来发展趋势。 一、
    的头像 发表于 09-04 14:49 630次阅读

    Linux嵌入式和单片机嵌入式的区别?

    区别 单片机嵌入式系统和Linux嵌入式系统是两种不同的嵌入式系统开发方式,它们在应用领域、开
    发表于 06-20 09:46

    运行在嵌入式系统上的emApps

    在当今快节奏的嵌入式系统世界中,灵活性和适应性是嵌入式系统实现的关键。SEGGER推出了其最新创新:Embedded apps(emApps)应用,类似于手机上的应用程序,可以运行在
    的头像 发表于 06-18 09:53 617次阅读
    运行在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>上的emApps

    嵌入式开发,如何选择适合的系统

    嵌入式ARM开发中,面对多种操作系统的选择,如何做出最适合项目的决策?本文将为您梳理常见系统的特性,帮助您快速了解它们的优缺点,以便更好地选择适合的
    的头像 发表于 05-20 11:32 893次阅读
    <b class='flag-5'>嵌入式</b>开发,如何选择适合的<b class='flag-5'>系统</b>?

    嵌入式开发入门指南:从零开始学习嵌入式

    随着物联网、智能硬件的发展,嵌入式开发成为热门技能之一。以下将为初学者提供一份详细的嵌入式开发入门指南,涵盖学习路径、必备工具、推荐资源等内容。 1. 嵌入式系统的定义与应用
    发表于 05-15 09:29

    嵌入式系统开发圣经【干货】

    内容包括:嵌入式系统的介绍、嵌入式SoC硬件系统概论、嵌入式系统软件开发。适
    发表于 03-12 13:58

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功
    的头像 发表于 01-13 16:30 1179次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

    嵌入式系统中使用EEPROM的优缺点

    同时也存在一些局限性。以下是EEPROM在嵌入式系统中使用的优缺点分析: 优点 非易失性存储 : EEPROM中的数据在断电后仍然保持不变,这对于需要长期保存配置信息、校准数据等的应用
    的头像 发表于 12-16 16:57 1423次阅读

    新手怎么学嵌入式?

    。但面对这个复杂的领域,很多人可能会感到迷茫,不知从何处入手。别担心,本文将为你提供一些入门学习嵌入式技术的建议。 新手入门学习嵌入式技术的途径 1. 了解基础知识 首先,要对嵌入式系统
    发表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指将人工智能技术应用于嵌入式系统中的一种技术。嵌入式系统
    的头像 发表于 12-11 09:23 1516次阅读
    什么是<b class='flag-5'>嵌入式</b>人工智能

    嵌入式系统开发与硬件的关系 嵌入式系统开发常见问题解决

    嵌入式系统开发与硬件的关系 嵌入式系统是专为特定应用设计的计算机系统,它们通常嵌入在所控制的设备
    的头像 发表于 12-09 09:38 1463次阅读

    【「嵌入式系统设计与实现」阅读体验】+ 学习一个STM32的案例

    感谢电子发烧友论坛和电子工业出版社的赠书。 在[上一篇帖子](【新提醒】【「嵌入式系统设计与实现」阅读体验】+ 初步印象 - 社区活动专版 - 电子技术论坛 - 广受欢迎的专业电子论坛!)中介绍了
    发表于 12-06 22:22