Posso programmare il mio Arduino usando un linguaggio di programmazione diverso da C ++? In tal caso, quali linguaggi di programmazione? Di quale software avrei bisogno per compilare e caricare il mio codice su Arduino?
Posso programmare il mio Arduino usando un linguaggio di programmazione diverso da C ++? In tal caso, quali linguaggi di programmazione? Di quale software avrei bisogno per compilare e caricare il mio codice su Arduino?
Risposte:
Alcuni comunemente noti:
In teoria dovresti essere in grado di estendere avr-gcc per supportare altre lingue, anche se questa non è una piccola impresa. Vorrei anche avvertenza che il supporto per le lingue diverse C proviene generalmente con alcune limitazioni piuttosto pesanti su componenti lingua - per esempio, anche con C ++ E 'scoraggiato da istanziare nuovi oggetti come malloc
e free
sono estremamente costosi sia nello spazio di memoria e cicli.
Oltre a utilizzare Google, sono applicabili i seguenti riferimenti Fare clic qui.
In teoria, è possibile utilizzare qualsiasi compilatore che emette assembly AVR (limitazioni del modulo sulla dimensione del codice, utilizzo della RAM ecc.).
Esistono backend AVR sia per LLVM che per GCC , quindi in teoria, con un certo sforzo, la maggior parte dei linguaggi supportati da LLVM e i front-end di GCC potrebbero essere compilati in AVR. Una grande domanda sarà il supporto delle biblioteche, ecc.
Tuttavia, ecco un paio di strane scelte per lo spirito della domanda, piuttosto che la sua lettera [1].
Oh, e potresti scrivere l' Assemblea AVR grezza !
[1] - Non ho provato questi però!
Poiché avr-g ++ dovrebbe supportare tutti i costrutti C / C ++ standard, è possibile codificare gli assembly inline. Maggiori informazioni su questo thread del forum arduino.cc
Sono sorpreso che nessuno abbia menzionato l' Assemblea di AVR !
L'assemblaggio non è spesso considerato il metodo di programmazione più interessante o addirittura semplice, ma è comunque possibile al 100% con tutti gli arduino basati su AVR. Le schede SAM probabilmente non funzioneranno con questo sapore, ma è comunque possibile utilizzare l'assemblaggio nella loro programmazione.
Tutte le schede Arduino (al momento della pubblicazione) supportano la programmazione dell'assembly tramite Atmel Studio , l'SDK creato per i chip basati su Atmel.
Assembly è ingenuamente supportato da tutti i dispositivi Atmel e non richiede alcun boot loader per funzionare, quindi tutti i programmi sono intrinsecamente in tempo reale.
__asm__("Assembly code here")
funziona per aggiungere un assieme in linea a qualsiasi schizzo. Per la maggior parte dei programmi, questa è una cattiva idea, poiché è difficile ottenere l'indipendenza della piattaforma con questo metodo.