Якщо ви недосвідчені в області програмування мікропроцесор / мікроконтролер, вам, мабуть, слід спочатку вивчити С, щоб ви могли зрозуміти, коли і чому Java - це поганий вибір для більшості проектів мікроконтролерів.
Чи читали ви обмеження щодо зв’язаного вами JVM? Він включає такі проблеми:
- Всього 512 байт пам'яті програми (не КБ, і точно не МБ)
- Всього 768 байт оперативної пам’яті (куди йдуть ваші змінні. Цим обмеженням ви обмежені 768 символами рядків.)
- Близько 20 кВт кодує Java в секунду на 8 МГц AVR.
- Включає лише java.lang.Object, java.lang.System, java.io.PrintStream, java.lang.StringBuffer, клас управління JVM та нативний клас IO. Ви не зможете виконати імпорт java.util. *; і отримуйте всі класи, які не в цьому списку.
Якщо ви не знайомі з тим, що означають ці обмеження, переконайтеся, що у вас є план B, якщо виявиться, що ви не можете реально виконати проект з Java через обмеження простору та швидкості.
Якщо ви все ще хочете працювати з Java, можливо, тому, що ви очікуєте, що пристрій запрограмує багато людей, які знають тільки Java, я настійно пропоную отримати більшу техніку, можливо, щось, що працює з вбудованим Linux. Дивіться цю сторінку від Oracle, щоб побачити деякі характеристики для запуску вбудованого JVM, у поширених запитаннях їх обговорення вони рекомендують мінімум 32 Мб оперативної пам’яті та 32 Мб Flash. Це приблизно в 32 000 разів більше оперативної пам’яті і в 10000 разів більше спалаху AVR, який ви дивитесь. Сторінка Intro Embedded Java Oracle детальніше розповідає про обмеження JVM. Їх тон голосу - як ви здогадуєтесь, набагато більш сприятливий для Java, ніж мій. Майте на увазі, що цей вид обладнання набагато складніше розробити, ніж 8-бітний AVR.
Я студент комп’ютерної інженерії з неповнолітньою інформатикою. Відділ CS мого університету випив Java Kool-допомогу, тому багато студентів в інженерній програмі знають лише Java (це сумний стан справ для програміста, принаймні вивчіть якийсь Python чи C ++, якщо ви цього не зробите хочу навчитися C ...), тому один з моїх професорів опублікував C Cheat Sheet для студентів з роком досвіду Java. Це лише 75 сторінок; Я пропоную вам прочитати або продемонструвати це, перш ніж приймати рішення. На мою думку, C - це найбільш ефективна, довговічна та професійна мова, на якій можна розробити вбудований проект.
Ще одна альтернатива, яку слід розглянути, - це рамка Arduino . Він використовує усічену версію про Електропроводка мовою, який, як C ++ без об'єктів або заголовків. Він може працювати на багатьох AVR-чіпах, це точно не обмежується їх обладнанням. Це дасть вам простішу криву навчання, ніж просто стрибок прямо на C.
На закінчення,
текст Alt: Взяв у мене п'ять спроб знайти потрібний, але мені вдалося врятувати наш нічний вихід - якщо не човен - врешті-решт.