18

我一直在研究微控制器,想知道它们中的大多数是否基于 C/C++?我非常精通Java,想问你们是否有人知道我可以研究的一种具有成本效益的基于Java的微控制器。

感谢所有答案!

4

5 回答 5

15

像 java(或 c#)这样的语言和像 c 或 c++ 这样的低级语言之间的区别在于它们有一个虚拟机。这有很多优点,比如使应用程序平台独立。但这也意味着每个平台都必须有虚拟机。

现在,微控制器并不统一,并且在功率、内存和许多其他功能方面各不相同。因此,即使可能,为他们采用 JVM(java 的虚拟机)也并非易事。大多数时候这是不可能的——大多数 uc 的内存容量都很低(部分原因是它们很便宜)——这将使在那里安装任何通用 JVM 成为不可能,更不用说应用程序代码了。

我知道用于微控制器的 java 的一些部分实现。例如“基于java”的sim卡(里面有一个非常小的控制器)就在那里,但它们的java版本非常有限。

因此,基本上我认为编写“嵌入式 Java”(尤其是如果您是新手)的最佳选择是在微控制器之上工作,这些微控制器基本上是一台功能齐全的小型计算机,运行一个已经具有 JVM 的适当操作系统。只需查看新的“微型计算机”开源项目之一,例如raspberry pi 或beaglebone。两者的成本都是 arduino 的 2 倍左右,而且功能更强大。

希望我有所帮助。

于 2013-11-21T14:43:58.553 回答
11

查看支持 Java 的 STM32 微控制器Renesas RX

作为替代方案,您可以使用Haiku-VMNanoVMuJ在 AVR/Arduino 上运行精简的 JVM 。

您还可以使用 Java 编写 Arduino 草图并使用VBB将它们交叉编译为C。

于 2014-08-15T01:17:39.860 回答
5

JArduino对您来说可能是一个很好的起点,因为它允许您编写与 Arduino 板交互的 Java 程序。JArduino 提供的 Java API 与 Arduino API 完全一致。然后,一旦您习惯了 Java API,就应该很容易切换到普通的 Arduino 编程(正如所指出的,无论如何,基于 C/C++ 的 Arduino 离 Java 并不远)。请注意,使用 JArduino,您并没有真正对微控制器本身进行编程(您的主要逻辑将在您的 PC 上运行,而 Arduino 将被简单地“控制”而无需在板上运行任何高级逻辑)。

于 2014-10-01T08:14:49.180 回答
3

有 Java 替代品,但我认为它们的成本很高。例如 ST Microelectronics 有这个基于 eclipse 的 java IDE:

Java SDK

我没有在微控制器上使用 java 的经验,但是 Java 与 C++(微控制器更支持)有很多相似之处(基于 C 的语言),但它仍然是 C 占主导地位。如果您已经了解 Java,应该可以很快学会这一点。

Arduino 使用 C++,对于没有 C/C++ 经验的人来说很容易使用。

我建议你也试试STM32 Java论坛看看有没有用户已经分享了他们的经验:

STM32 Java论坛

于 2013-11-20T18:04:18.237 回答
1

你可以看看Java on a Chip (JoC Module)是 java 可编程控制器模块

JoC 有一个参考板 Javaino以便于开发

Demmel iLCD产品还配备了 Java VM,它是一个带有 JVM 的智能显示器

于 2020-05-29T20:56:05.877 回答