Opcje programowania inne niż C ++

14

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?

tstew
źródło
1
Powiązane: arduino.stackexchange.com/questions/105/…
Facet z kapeluszem
Niestety jest to skuteczny duplikat pytania spoza Arduino.SE: patrz tutaj , myślę, że pytanie, które podłączyłem, powinno zostać przeniesione tutaj po zakończeniu wersji beta, ale jeszcze nie teraz.
apnorton
@anorton To pytanie dotyczy alternatywnych IDE. To pytanie nie jest duplikatem, ponieważ mówi o alternatywnych językach programowania.
tstew
@ user2202326 Przepraszamy ... Wydawało mi się, że w tym wątku przypominam sobie więcej osób odpowiadających w innym języku niż IDE, ale najwyraźniej się myliłem. Kontynuować.
apnorton
Możesz zajrzeć do Netduino, jeśli znasz C # (Visual Studio to droga, ale istnieją inne sposoby kompilacji kodu C #). Nie wiem jednak, jaką masz płytę i czy jest kompatybilna. netduino.com
Jason Down

Odpowiedzi:

5

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 malloci freesą bardzo kosztowne zarówno w przestrzeni pamięci i cykli.

Oprócz korzystania z Google obowiązują następujące odniesienia. Kliknij tutaj.

Hardik Thaker
źródło
8

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!

Matthew G.
źródło
2

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.

Matthew R.
źródło
1

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

Faux_Clef
źródło
Zestaw wbudowany nie jest częścią standardów C / C ++, ale gcc i kompilator microsoft c obsługują go, chociaż niekompatybilnie.
tbodt
true, podobnie jak avr_gcc.
Faux_Clef
W każdym razie nic nie przebije pisania kodu wykonywalnego w kodzie szesnastkowym.
Faux_Clef,
1

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.

tuskiomi
źródło
2
Zauważ, że asembler jest również obsługiwany przez zestaw narzędzi gcc, który jest zawarty w instalacji Arduino IDE.
Edgar Bonet
@EdgarBonet Correct, dlatego __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.
tuskiomi