Java用于嵌入式系统?

时间:2015-07-24 05:55:16

标签: java embedded

我最近学到了一些基本的Java,并且正在考虑是否可以将这些新技能用于嵌入式计算项目。 我一直在寻找,但我似乎无法找到任何能够运行Java的微控制器。 这样的事情是否存在?

5 个答案:

答案 0 :(得分:6)

由于Java虚拟机架构,您只需要相当多的资源来运行JVM。获得JVM的阻力最小的路径可能是在已经支持它的目标上运行操作系统,例如Linux,但这本身需要相对庞大的资源。

有一些独立的JVM可以使用裸机或与嵌入式RTOS集成以实现线程支持。我刚才在similar question的答案中编了一个列表,但是有些链接现在已经过时了。

在嵌入式系统上运行Java肯定会达到性能,并且可能不适合硬实时应用程序而不需要太多关注。

答案 1 :(得分:4)

微控制器意味着真正的低级别 - 它们通常没有太多功能,并且没有足够的内存/处理器速度来运行JAVA。

大多数入门级微控制器都使用C / C ++,甚至可能使用它们自己的变体。

Arduino / Atmega 使用Haiku VM来运行java。使用haiku VM,您可以将JAVA代码编译为C - 并将其编程为Arduino。这使调试变得有点困难,但并不是那么糟糕 - 而且,像JAVA这样的高级语言会大大减少编码时间。问题通常是你的记忆很快就会结束,而且你不能写出大量的代码。

PIC - Muvium声称支持PIC,但他们在一段时间后停止支持它并且现在关闭了。我认为PIC目前不支持JAVA。

Renesas 是另一个受欢迎的微控制器提供商,它拥有自己的SDK,名为MicroEJ,适用于他们自己的RX和RZ板。我从来没有使用它,但他们的主板拥有更多的RAM和闪存 - 这有很大的帮助。

单板计算机(基本上,功能更强大的微控制器/处理器+具有更多外设)在使用JAVA进行嵌入式编程时非常有用。最受欢迎的两个是Beagle boneRaspberry Pi。这些基本上是计算机芯片 - 可以运行完整的ARM Ubuntu + Java / Python /任何其他语言。

最容易使用的是Raspberry Pi(在我看来) - 它有很大的社区支持。

答案 2 :(得分:4)

微控制器不是为此用途而制造的。称为“迷你计算机”的控制器可以嵌入JAVA应用程序(Raspberry PI,BeagleBone,Intel Edison等,因为它们嵌入了操作系统,因此可以使用JRE)。

对于微控制器,C / C ++确实更好,更可靠。

答案 3 :(得分:0)

最近我开始研究运行Java的CM12001 / 1000000电路板。它在同一块板上包含两个控制器。目前我对这件事情知之甚少。我会在收到更多信息后立即更新答案。

回答你的问题:是的,存在这样的事情,但这种情况非常罕见。然而,Python最近在嵌入式领域越来越受欢迎,使用的是MicroPython,其中包括Python 3标准库的一小部分,并且经过优化,可以在微控制器上运行。

编辑:Telit的ATOP模块提供此类功能。通常它们具有大量的RAM和Flash(几MB到几百MB)。他们运行Linux加载JVM(正如Clifford指出的那样)。 Telit提供Java API来控制像GPIO这样的东西(虽然非常有限),并且做串行通信,GPS,GSM控制等等。

答案 4 :(得分:0)

是的,存在能够在裸机上运行Java的微控制器

但是该微控制器上的JVM已针对速度和低内存使用进行了优化。这意味着优化的JVM比常规的JVM具有某些局限性,就像Python和MicroPython

但是Java上的纯代码使您可以轻松地将代码从桌面传输到微控制器或嵌入式系统

对于带有嵌入式计算项目的自我教育,您可以尝试使用Javaino 允许在该开发板上执行Java程序,通过i2c,UART等传感器从传感器读取数据