Моя команда разработчиков оборудования планирует использовать 8-битный микроконтроллер Atmel AVR для будущего проекта.
Насколько я знаю, он должен быть запрограммирован на C. Я нашел JVM для AVR, хотя он более ограничен, чем собственные библиотеки C от Atmel.
Можете ли вы предложить мне 8-битный микроконтроллер, который поддерживает Java?
PS. Я не знаю C, и я неопытный в программировании микропроцессора.
microcontroller
avr
java
sterz
источник
источник
big_floating_skirt
объект, который реализуетboat
интерфейс вorg.buoyant
пакете, иpole
объекты, которые имеют какой-то странный шаблон наследования, сjava.net
которым я сейчас не могу вспомнить (но он четко описан в UML)?Ответы:
Если вы неопытны в области программирования микропроцессора / микроконтроллера, вам, вероятно, следует сначала изучить C, чтобы понять, когда и почему Java является плохим выбором для большинства проектов микроконтроллеров.
Вы читали ограничения на JVM, которую вы связали? Это включает в себя следующие проблемы:
Если вы не знакомы с тем, что означают эти ограничения, убедитесь, что у вас есть план B, если выясняется, что вы не можете выполнить проект с Java из-за ограничений по пространству и скорости.
Если вы все еще хотите использовать Java, возможно, из-за того, что многие люди, знающие только Java, программируют устройство, я бы настоятельно рекомендовал приобрести более мощное оборудование, вероятно, с поддержкой встроенного Linux. См. Эту страницу Oracle для ознакомления с некоторыми спецификациями для запуска встроенной JVM. В разделе часто задаваемых вопросов об их обсуждении они рекомендуют минимум 32 МБ ОЗУ и 32 МБ Flash. Это примерно в 32 000 раз больше, чем в ОЗУ, и в 10000 раз больше, чем у AVR. На странице Oracle Java Embedded Intro более подробно рассказывается об ограничениях JVM. Их тон голоса, как вы можете догадаться, гораздо более дружественный к Java, чем мой. Имейте в виду, что этот тип оборудования гораздо сложнее разработать, чем 8-битный AVR.
Я студент по компьютерной инженерии с небольшим информатики. Департамент CS моего университета выпил Java Kool-aid, поэтому многие студенты инженерной программы изучают только Java (что является печальным положением для программиста, по крайней мере, изучите Python или C ++, если вы этого не сделаете) хочу выучить C ...), поэтому один из моих профессоров опубликовал C Cheat Sheet для студентов с опытом работы на Java. Это всего 75 страниц; Я предлагаю вам прочитать или просмотреть его, прежде чем принимать решение. На мой взгляд, C - самый эффективный, долговечный и профессиональный язык для разработки встроенного проекта.
Другой альтернативой для рассмотрения является Arduino Framework. Он использует урезанную версию языка Wiring , которая похожа на C ++ без объектов или заголовков. Он может работать на многих чипах AVR, он определенно не ограничен их аппаратным обеспечением. Это даст вам более легкую кривую обучения, чем просто прыгнуть прямо в C.
В заключение,
альтернативный текст: у меня ушло пять попыток найти правильную, но мне удалось спасти нашу ночь - если не лодку - в конце концов.
источник
Самая популярная среда программирования для Atmel AVR - Arduino . Язык Arduino является подмножеством C ++.
Arduino "эскизы" / программы выглядят синтаксически очень похоже на Java. Язык Wiring, из которого происходит Arduino, имеет реализации на C ++ ( Arduino ), Java ( Processing ) и Javascript ( processing.js ).
Оба языка имеют одинаковый стиль объявления, конструкции цикла и арифметические операторы из-за их общего происхождения в Algol68. Как правило, все объекты в Arduino объявляются глобально или в стеке, поэтому, как и в Java, функции-члены вызываются с помощью
.
оператора (например,LED.flash()
).Язык будет очень знаком программисту на Java, но, что немаловажно, эскизы Arduino скомпилированы в нативный код, который работает на полной скорости с полным аппаратным доступом. Это очень важно для получения максимальной отдачи от вашего микроконтроллера.
Вот API .
Arduino предоставляет все необходимое для начала работы: недорогое оборудование, бесплатную интегрированную среду разработки и загрузчик (так что вы можете загружать код через USB / последовательный порт).
источник
Я хочу прояснить, что я не использовал один раньше, но был один год назад под названием Javelin. Возможно, что Параллакс приобрел их или что-то еще, потому что теперь единственное, что появляется, это «Штамп Дротика». Несколько лет назад существовала также компания Velocity Semiconductor, которая произвела (предположительно) замену основных модулей Rabbit Semiconductor, и у нее была аппаратная JVM, но эта компания, очевидно, исчезла. Удачи в Вашем поиске!
источник
Sun Microsystems создавала платформу под названием Sun Spot, которая была в основном встроенной платформой Java. Очевидно, что Sun Microsystems больше не существует (их купил Oracle), но кажется, что вы все еще можете купить Sun Spots - http://www.sunspotworld.com/products/ . Я не большой в идее использования Java во встроенной среде (неправильный уровень абстракции для работы imho), но это, кажется, самая естественная встроенная платформа для Java. Обратите внимание на технические характеристики этих устройств - они предназначены для работы в тяжелых условиях 180 МГц / 512 тыс. ОЗУ и стоят недешево за 400 долларов за стартовый комплект.
Так что я буду вторым или третьим ответчиком Arduino на этот вопрос. Существует одно адское сообщество, которое поддерживает вас, если вам нужна помощь. А если вам нужно периферийное оборудование, поищите «Arduino Shields» в Google и поразитесь - вы можете сделать что угодно, от управляющих серводвигателей до перехода в беспроводную сеть 802.11 с правильной комбинацией экранов. Непрактично изучать C (указатель говорит, что !?) без некоторого времени практики, но вы можете начать писать наброски Arduino практически мгновенно ... Вы также можете получить «настоящие» платформы Arduino около 30 долларов и клоны (например, RBBB или DorkBoard) менее чем за 15 долларов.
источник
Параллакс делает Javelin Stamp , CoM (компьютер на модуле), который управляет JVM.
Это $ 60 и выполняет ~ 8500 инструкций Java в секунду.
Кроме того, печатная плата розовая (на самом деле!)
источник
Системы Ajile создают множество встроенных Java-чипов в реальном времени и плат Eval.
Они бегают голой металлической явой. Это очень приятно
www.ajile.com производит чипы и доски объявлений.
www.systronix.com продают различные встроенные Java-оборудования.
Я использовал AJ-100 из ajile для требовательной работы, с ними очень приятно работать. И нет, они не такие дешевые, как AVR, но они обрабатывают данные, как бюджетный Pentium.
Чипы Ajiles реагируют на прерывания (задержка прерывания) менее чем за 1 микросекунду.
источник
Мой личный опыт показывает, что код на C для программирования и начала работы с AVR довольно прост, я также пришел из многолетнего опыта работы с Java, и после примерно 2 месяцев использования набросков arduino я отказался от среды и пошел на сайты avr-gcc, сайты Подобно avrfreaks, легко найти ответы на распространенные проблемы. (Я все еще делаю все на моем верном Arduino Duemillenove)
Использование eclipse для компиляции и «развертывания», т.е. записи в микросхему, также хорошо, так как мне не нужно иметь дело с другой IDE
Я думаю, что на самом деле сложнее разобраться с регистрами, 16-битными регистрами и прочитать их в соответствующем порядке, прерываниями, таймерами, аппаратным ШИМ, чем самим языком программирования.
источник
Хотя я бы вообще относился к лагерю «изучи C и пойми, что на самом деле делают процессоры», когда речь идет о встраиваемой работе, стоит отметить, что микросхема с небольшим корпусом стоит не намного дороже, чем AVR, и она почти правдоподобна положение для обработки простых задач на вершине JVM.
источник
NanoVM - это виртуальная машина Java, разработанная для работы на 8-битных микроконтроллерах AVR.
(с домашней страницы)
источник
Это не совсем Java - или 8-битный, но для микроконтроллеров ARM с низким энергопотреблением, который называется Espruino, доступен интерпретатор Javascript .
источник