Czy mogę zaprogramować swoje Arduino przy użyciu dowolnego języka programowania innego niż C ++? Jeśli tak, to jakie języki programowania? Jakiego oprogramowania potrzebuję do kompilacji i ładowania mojego kodu na Arduino?
Czy mogę zaprogramować swoje Arduino przy użyciu dowolnego języka programowania innego niż C ++? Jeśli tak, to jakie języki programowania? Jakiego oprogramowania potrzebuję do kompilacji i ładowania mojego kodu na Arduino?
Odpowiedzi:
Niektóre powszechnie znane:
Teoretycznie powinieneś być w stanie rozszerzyć avr-gcc o obsługę innych języków, chociaż nie jest to małe przedsięwzięcie. Powinienem również zastrzeżenie, że wsparcie dla języków innych niż C zazwyczaj jest wyposażony w kilka dość ciężkich ograniczeń dotyczących elementów języka - na przykład nawet z C ++ to zniechęcać do uruchamianiu nowych obiektów jak malloc
i free
są bardzo kosztowne zarówno w przestrzeni pamięci i cykli.
Oprócz korzystania z Google obowiązują następujące odniesienia. Kliknij tutaj.
Teoretycznie można użyć dowolnego kompilatora, który generuje zestaw AVR (ograniczenia modulo dotyczące wielkości kodu, użycia pamięci RAM itp.).
Backendy AVR istnieją zarówno dla LLVM, jak i GCC - więc teoretycznie, przy pewnym wysiłku, większość języków obsługiwanych przez LLVM i interfejsy GCC można skompilować do AVR. Dużym pytaniem będzie obsługa bibliotek itp.
Niemniej jednak, oto kilka dziwnych wyborów dla ducha pytania, a nie jego litery [1].
Aha, i mógłbyś napisać surowe Zgromadzenie AVR !
[1] - Nie próbowałem tego jednak!
Są też osoby pracujące na systemach opartych na Javascript node.js. Jednym z publicznie dostępnych jest Espruino, a innym jest Tessel, który pojawi się wiosną 2014 roku.
Ponieważ avr-g ++ powinien obsługiwać wszystkie standardowe konstrukcje C / C ++, możliwe jest kodowanie wbudowanego zestawu. Więcej informacji w tym wątku na forum arduino.cc
Dziwi mnie, że nikt nie wspominał o Zgromadzeniu AVR !
Montaż często nie jest uważany za najciekawszą, a nawet łatwą metodę programowania, ale mimo to jest w 100% możliwy z arduino opartym na AVR. Płyty SAM prawdopodobnie nie będą działać z tym smakiem, ale nadal można używać asemblera w ich programowaniu.
Wszystkie płyty Arduino (od momentu wysłania) obsługują programowanie asemblera za pośrednictwem Atmel Studio , SDK dla układów opartych na Atmel.
Asemblowanie jest naiwnie obsługiwane przez wszystkie urządzenia Atmel i nie wymaga modułu ładującego, aby działało, więc wszystkie programy są z natury rzeczy w czasie rzeczywistym.
__asm__("Assembly code here")
pracuje nad dodaniem złożenia liniowego do dowolnego szkicu. W przypadku większości programów jest to zły pomysł, ponieważ przy pomocy tej metody trudno jest osiągnąć niezależność platformy.