2013-11-20 2 views
9

Я искал микроконтроллеры и задавался вопросом, основывается ли большинство из них на C/C++? Я достаточно разбираюсь в java и хочу спросить вас, ребята, если кто-нибудь знает о хорошем экономичном, основанном на Java микроконтроллере, на который я мог бы смотреть.Микроконтроллеры на основе Java?

Все ответы приветствуются!

+1

Языки настолько похожи, что вам следует просто переключиться на хороший микроконтроллер с хорошим сообществом и узнать. Например, Arduino - это подмножество C#, но это не так, а сумасшествие, чтобы учиться на Java ... – DrCord

+2

@DrCord ??? Arduino запрограммирован на C или C++. В CIE или подмножестве вообще нет. –

+0

@ H2CO3 Я тоже этому не верил, но [здесь] (http://playground.arduino.cc/Interfacing/Csharp). Конечно, кроме хобби, я не знаю, зачем вы программируете встроенную систему с использованием C# или Java. – jmstoker

ответ

12

Разница между языком как Java (или C#) и более низкий уровень языка, как c или C++ - это тот факт, что у них есть виртуальная машина. У этого есть много преимуществ, как сделать приложение независимым от платформы. Но это также означает, что каждая платформа должна иметь vm для нее.

Теперь микроконтроллеры неравномерны и отличаются мощностью, памятью и многими другими функциями. Поэтому использование JVM (виртуальной машины Java) для них непросто, когда это возможно. В большинстве случаев его просто невозможно - большинство из uc имеют очень низкую емкость памяти (часть того, что делает их дешевыми) - это сделало бы подходящим JVM общего назначения невозможным, не говоря уже и о коде приложения.

Я знаю некоторые частичные реализации Java для микроконтроллеров. Например, существуют сим-карты на основе java (которые имеют очень маленький контроллер внутри), но у них очень ограниченная версия java.

Так что я считаю, что лучше всего написать «встроенный java» (особенно если вы новичок) - это работать на вершине микроконтроллеров, которые в основном представляют собой небольшой полностью функционирующий компьютер, на котором установлена ​​надлежащая ОС, которая уже JVM. Просто загляните в один из новых проектов с открытым исходным кодом «микрокомпьютер», таких как raspberry pi или beaglebone. Оба стоят около 2х ардуинов и намного более мощные.

Надеюсь, я помог.

3

Есть альтернативы Java, но я думаю, что они дорогостоящие. Например ST Microelectronics имеет это Java IDE на основе Eclipse:

Java SDK

У меня нет опыта работы с Java на микроконтроллерах, но Java имеет много общего (язык на основе C) на C++ (который более поддерживается с микроконтроллерами) , но он по-прежнему доминирует над C. Должно быть возможно узнать это довольно быстро, если вы уже знаете Java.

Arduino использует C++ и прост в использовании для людей, неопытных с C/C++.

Я предлагаю вам попробовать форум STM32 Java, чтобы увидеть, если есть пользователи уже поделились своим опытом:

STM32 Java forum

+0

Итак, первая ссылка, которую вы мне дали, какова цель этого программного обеспечения? Связано ли это с микроконтроллером? – user2855405

+1

@ user2855405: Насколько я понимаю, вы можете мигать микроконтроллером из среды IDE. В нижней части этой страницы вы можете найти много документов в формате PDF, которые объяснят, что программное обеспечение может и чего не может сделать, но вот цитата из одного из документов: «STM32Java - это комплексное решение для разработки и развертывания приложений на STM32 микроконтроллеры с использованием технологий Java "_. – Phat

7

Посмотрите на Java-ready STM32 microcontrollers или Renesas RX.

В качестве альтернативы вы можете запускать вырезанный JVM на AVR/Arduino, используя Haiku-VM, NanoVM или uJ.

Вы также можете написать эскизы Arduino в Java и скомпилировать их на C с помощью VBB.

3

JArduino может быть хорошей отправной точкой для вас, так как это позволит вам писать Java-программы, которые взаимодействуют с платой Arduino. Java API, предоставляемый JArduino, полностью выровнен с API Arduino.Затем, как только вы привыкнете к API Java, должно быть легко переключиться на простое программирование Arduino (как было указано, Arduino на базе C/C++ не так уж далек от Java). Имейте в виду, что с JArduino вы действительно не программируете сам микроконтроллер (ваша основная логика будет работать на вашем ПК, и Arduino просто будет «контролироваться» без какой-либо продвинутой логики на плате).

Смежные вопросы