Se non hai esperienza nel campo della programmazione a microprocessore / microcontrollore, dovresti probabilmente imparare prima C, in modo da poter capire quando e perché Java è una scelta sbagliata per la maggior parte dei progetti di microcontrollori.
Hai letto le restrizioni sulla JVM che hai collegato? Include i seguenti problemi:
- Almeno 512 byte di memoria del programma (non KB e sicuramente non MB)
- Fino a 768 byte di RAM (dove vanno le variabili. Con questa restrizione sei limitato a 768 caratteri di stringhe.)
- Circa 20k codici operativi Java al secondo su 8 Mhz AVR.
- Include solo java.lang.Object, java.lang.System, java.io.PrintStream, java.lang.StringBuffer, una classe di controllo JVM e una classe IO nativa. Non sarà possibile eseguire un'importazione java.util. *; e ottieni tutte le classi non in questo elenco.
Se non hai familiarità con il significato di queste restrizioni, assicurati di avere un piano B se si scopre che non puoi effettivamente eseguire il progetto con Java a causa delle restrizioni di spazio e velocità.
Se vuoi ancora andare con Java, forse perché ti aspetti che il dispositivo sia programmato da molte persone che conoscono solo Java, ti consiglio vivamente di ottenere hardware più grande, probabilmente qualcosa che esegua Linux incorporato. Vedi questa pagina da Oracle per alcune specifiche per le quali eseguire la JVM integrata, nelle FAQ della loro discussione raccomandano un minimo di 32 MB di RAM e 32 MB di Flash. Sono circa 32.000 volte la RAM e 1.0000 volte il Flash dell'AVR che stai guardando. La pagina Oracle Java Embedded Intro fornisce ulteriori dettagli sulle restrizioni della JVM. Il loro tono di voce è, come puoi immaginare, molto più compatibile con Java del mio. Tenere presente che questo tipo di hardware è molto più difficile da progettare rispetto a un AVR a 8 bit.
Sono uno studente di ingegneria informatica con un minore in informatica. Il dipartimento CS della mia università ha bevuto il Java Kool-aid, quindi molti studenti del programma di ingegneria arrivano conoscendo solo Java (che è un triste stato di cose per un programmatore, almeno impari un po 'di Python o C ++ se non lo fai voglio imparare C ...), così uno dei miei professori ha pubblicato un C Cheat Sheet per studenti con un anno di esperienza in Java. Sono solo 75 pagine; Ti suggerisco di leggerlo o scremarlo prima di prendere una decisione. A mio avviso, C è il linguaggio più efficiente, durevole e professionale in cui sviluppare un progetto integrato.
Un'altra alternativa da considerare è il framework Arduino . Utilizza una versione ridotta del linguaggio Wiring , che è come C ++ senza oggetti o intestazioni. Può funzionare su molti chip AVR, sicuramente non è limitato al loro hardware. Ti darà una curva di apprendimento più semplice del semplice saltare direttamente in C.
In conclusione,
testo alternativo: Mi ci sono voluti cinque tentativi per trovare quello giusto, ma alla fine sono riuscito a salvare la nostra notte - se non la barca.