Jeśli nie masz doświadczenia w dziedzinie programowania mikroprocesorów / mikrokontrolerów, prawdopodobnie powinieneś najpierw nauczyć się języka C, aby zrozumieć, kiedy i dlaczego Java jest złym wyborem dla większości projektów mikrokontrolerów.
Czy przeczytałeś ograniczenia dotyczące JVM, które połączyłeś? Obejmuje następujące problemy:
- Tylko 512 bajtów pamięci programu (nie KB, a na pewno nie MB)
- Tylko 768 bajtów pamięci RAM (tam, gdzie idą twoje zmienne. Ograniczenie to ogranicza do 768 znaków ciągów).
- Około 20 000 kodów Java na sekundę w 8 MHz AVR.
- Obejmuje tylko java.lang.Object, java.lang.System, java.io.PrintStream, java.lang.StringBuffer, klasę sterującą JVM i rodzimą klasę IO. Nie będzie można wykonać importu java.util. *; i zdobądź wszystkie klasy, których nie ma na tej liście.
Jeśli nie wiesz, co oznaczają te ograniczenia, upewnij się, że masz plan B, jeśli okaże się, że nie możesz faktycznie wykonać projektu z Javą z powodu ograniczeń przestrzeni i prędkości.
Jeśli nadal chcesz korzystać z Javy, być może dlatego, że spodziewasz się, że urządzenie będzie programowane przez wielu ludzi znających tylko Javę, zdecydowanie sugeruję zakup większego sprzętu, prawdopodobnie czegoś, co obsługuje wbudowany system Linux. Zobacz tę stronę Oracle, aby znaleźć specyfikacje do uruchomienia wbudowanej maszyny JVM, w często zadawanych pytaniach do dyskusji zalecają minimum 32 MB pamięci RAM i 32 MB pamięci Flash. To około 32 000 razy więcej pamięci RAM i 10000 razy więcej niż flash AVR, na który patrzysz. Strona Oracle Embedded Intro Intro zawiera bardziej szczegółowe informacje na temat ograniczeń JVM. Ich głos jest, jak można się domyślać, dużo bardziej przyjazny dla Javy niż mój. Należy pamiętać, że tego rodzaju sprzęt jest znacznie trudniejszy do zaprojektowania niż 8-bitowy AVR.
Jestem studentem inżynierii komputerowej z nieletnią informatyką. Dział CS mojego uniwersytetu wypił program Java Kool-help, więc wielu studentów programu inżynierskiego zna tylko Javę (co jest dla programisty smutną sytuacją, przynajmniej naucz się języka Python lub C ++, jeśli nie chcę się uczyć C ...), więc jeden z moich profesorów opublikował Ściągacz C dla studentów z rocznym doświadczeniem w Javie. To tylko 75 stron; Sugeruję przeczytanie lub przejrzenie go przed podjęciem decyzji. Moim zdaniem C jest najbardziej wydajnym, trwałym i profesjonalnym językiem, w którym można opracować osadzony projekt.
Inną alternatywą do rozważenia jest platforma Arduino . Wykorzystuje uproszczoną wersję z Wiring języku, który jest jak C ++ bez obiektów lub nagłówków. Może działać na wielu układach AVR, zdecydowanie nie jest ograniczony do ich sprzętu. Zapewni to łatwiejszą krzywą uczenia się niż skakanie prosto do C.
Podsumowując,
tekst alternatywny: zajęło mi pięć prób znalezienia właściwej, ale w końcu udało mi się uratować naszą noc - jeśli nie łódkę - na końcu.