Kann ich mein Arduino mit einer anderen Programmiersprache als C ++ programmieren? Wenn ja, welche Programmiersprachen? Welche Software benötige ich, um meinen Code zu kompilieren und auf das Arduino zu laden?
Kann ich mein Arduino mit einer anderen Programmiersprache als C ++ programmieren? Wenn ja, welche Programmiersprachen? Welche Software benötige ich, um meinen Code zu kompilieren und auf das Arduino zu laden?
Antworten:
Einige allgemein bekannte:
Theoretisch sollten Sie in der Lage sein, avr-gcc auf andere Sprachen auszudehnen, auch wenn dies kein kleines Unterfangen ist. Ich sollte auch Vorbehalt , dass die Unterstützung für andere Sprachen als C typischerweise mit einigen ziemlich gewichtige Beschränkungen für Sprachkomponenten kommt - zum Beispiel auch mit C ++ es entmutigt als neue Objekte zu instanziieren malloc
und free
sind extrem teuer in sowohl Speicherplatz und Zyklen.
Neben der Verwendung von Google gelten die folgenden Verweise. Klicken Sie hier.
Theoretisch könnte jeder Compiler verwendet werden, der AVR-Assembler ausgibt (Modulo-Beschränkungen in Bezug auf Codegröße, RAM-Nutzung usw.).
AVR-Backends gibt es sowohl für LLVM als auch für GCC. Theoretisch könnten mit einigem Aufwand die meisten Sprachen, die von LLVM und den Frontends von GCC unterstützt werden, für AVR kompiliert werden. Eine große Frage wird die Bibliotheksunterstützung usw. sein.
Nichtsdestotrotz gibt es hier ein paar seltsame Möglichkeiten für den Grundgedanken der Frage und nicht für den Buchstaben [1].
Oh, und Sie könnten rohe AVR Assembly schreiben !
[1] - Ich habe das aber nicht ausprobiert!
Da avr-g ++ alle Standard-C / C ++ - Konstrukte unterstützen sollte, ist es möglich, Inline-Assemblys zu codieren. Mehr Infos in diesem arduino.cc Forum Thread
Ich bin überrascht, dass niemand die AVR-Versammlung erwähnt hat !
Assemblieren wird oft nicht als die interessanteste oder einfachste Programmiermethode angesehen, aber es ist dennoch 100% ig mit jedem AVR-basierten Arduino möglich. SAM-Boards werden wahrscheinlich nicht mit dieser Variante funktionieren, aber es ist immer noch möglich, Assembly in ihrer Programmierung zu verwenden.
Alle Arduino-Boards (ab Veröffentlichung) unterstützen die Assembler-Programmierung über Atmel Studio , das SDK für Atmel-basierte Chips.
Assembly wird von allen Atmel-Geräten naiv unterstützt und benötigt keinen Bootloader, um zu funktionieren, sodass alle Programme von Natur aus in Echtzeit ausgeführt werden.
__asm__("Assembly code here")
Hinzufügen einer Inline-Baugruppe zu jeder Skizze funktioniert. Für die meisten Programme ist dies jedoch eine schlechte Idee, da es mit dieser Methode schwierig ist, Plattformunabhängigkeit zu erreichen.