Opzioni di programmazione diverse da C ++


14

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?



Sfortunatamente, questo è un duplicato efficace di una domanda nonArduino.SE: vedi qui penso che la domanda che ho collegato dovrebbe essere spostata qui dopo la fine della beta, ma non ancora.
apnorton,

@anorton Quella domanda si pone su IDE alternativi. Questa domanda non è un duplicato perché parla di linguaggi di programmazione alternativi.
tstew

@ user2202326 Mi dispiace ... mi sembrava di ricordare più persone che rispondevano con lingue diverse rispetto agli IDE su quel thread, ma, a quanto pare, mi sbagliavo. Proseguire.
apnorton,

Puoi esaminare Netduino se hai familiarità con C # (Visual Studio è la strada da percorrere, ma ci sono altri modi per compilare il codice C #). Non so quale scheda hai e se è compatibile però. netduino.com
Jason Down,

Risposte:


5

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 malloce freesono estremamente costosi sia nello spazio di memoria e cicli.

Oltre a utilizzare Google, sono applicabili i seguenti riferimenti Fare clic qui.


8

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].

  • AMForth , un quarto dialetto può essere trasmesso su un Arduino.
  • AVR-Ada : Ada per microcontroller AVR.
  • BASIC : riporta il Goto!

Oh, e potresti scrivere l' Assemblea AVR grezza !

[1] - Non ho provato questi però!


2

Ci sono anche alcune persone che lavorano su sistemi basati su Javascript node.js. Uno che è già pubblicamente disponibile è Espruino e un altro è Tessel che verrà lanciato nella primavera del 2014.


1

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


L'assemblaggio in linea non fa parte degli standard C / C ++, ma gcc e il compilatore microsoft c lo supportano, sebbene in modo incompatibile.
tbodt

vero, così come avr_gcc.
Faux_Clef,

Niente di meglio che scrivere codice eseguibile in esadecimale comunque.
Faux_Clef,

1

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.


2
Si noti che l'assemblaggio è supportato anche dalla toolchain gcc, inclusa nell'installazione IDE di Arduino.
Edgar Bonet,

@EdgarBonet Corretto, ecco perché __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.
tuskiomi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.