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?



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.


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!



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


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.