2012-03-03 3 views
38

Il MonoDevelop compila su ARMv6, principalmente in modo che possa essere eseguito sul mio Raspberry Pi?MonoDevelop ARMv6 su Raspberry Pi


ho notato che Debian can run on the Raspberry Pi and Debian has a set of drivers for Mono.

Quindi questo significa che saremo in grado di sviluppare in Mono?

+0

pi è ARMv11 non è vero? – weston

+3

@weston: la numerazione della versione dell'architettura ARM è diversa dalla numerazione del nucleo ARM. Il core ARM11 utilizza ARM Architecture v6. – Clifford

+0

Si prega di seguire la proposta Raspberry Pi su Area51. Puoi aggiungere la tua domanda come esempio: http://area51.stackexchange.com/proposals/37041/raspberry-pi-hardware-and-software – iandotkelly

risposta

32

Il Mono project supports ARM, quindi si dovrebbe essere in grado di costruire e utilizzare MonoDevelop sul Raspberry Pi. Almeno questo è quello che spero!


2012-05-16

ho ottenuto il mio Raspberry Pi ieri (yay!) E può confermare che è possibile compilare ed eseguire il codice .NET (ho provato con C#) utilizzando Mono e il suo Modulo compilatore MCS. Tutto ciò è stato fatto tramite la shell e non con una GUI. Sarebbe bello poter far funzionare l'IDE di MonoDevelop se possibile.

Per chi fosse interessato, è possibile installare Mono digitando:

sudo apt-get install mono-complete 

Questo include anche il modulo compilatore MCS, in modo da poter semplicemente compilare un file con estensione cs così:

mcs program.cs 

e fuggi così:

mono program.exe 
7

Mono sul Raspberry Pi è possibile e abbastanza facile da configurare. Quanto segue presuppone che tu sia su Debian. Crea la tua applicazione in MonoDevelop (o Visual Studio con le librerie Mono) e poi invialo a Raspberry Pi. Una volta sul Raspberry Pi funzionerà come standard. A causa della natura di C#, .NET e JIT, non è necessario "compilare" come tale, basta avere i tempi di esecuzione disponibili per interpretare il codice prodotto da MonoDevelop. Vorrei provare a non sviluppare sul Raspberry Pi stesso con MonoDevelop in quanto è abbastanza pesante per il dispositivo.

Questo è preso da my blog che offre un numero di tutorial Raspberry Pi.

Nota: il runtime standard Mono attualmente disponibile supporta solo fino a .NET 3.5 a meno che non venga compilato dall'utente stesso.

Quindi vuoi iniziare a sviluppare alcune applicazioni per il tuo Raspberry Pi ma la tua conoscenza della programmazione è limitata ai moderni linguaggi .NET come VB.NET e C#. Non è un problema!! Benvenuti nel mondo di Mono, una piattaforma cross-platform open source e una versione compatibile del framework .NET. Usando un IDE di sviluppo, come Visual Studio o meglio ancora MonoDevelop, puoi produrre file EXE che verranno eseguiti sul tuo Raspberry Pi. Tutto quello che devi fare è installare i tempi di esecuzione Mono sul Raspberry Pi. Per farlo entriamo nelle seguenti linee.

sudo apt-get update 

sudo apt-get install mono-runtime 

Come accennato in altri tutorial prima linea viene utilizzata per aggiornare il gestore di pacchetti apt-get per assicurarsi che sta usando le più recenti sorgenti per scaricare i pacchetti. La seconda riga installa e prepara i tempi di utilizzo. Questo è tutto. Ora per eseguire un file EXE sviluppato da Mono, basta semplicemente aggiungere il comando con la parola "mono" come mostrato di seguito.

mono myprogram.exe 
11

Solo una nota per aggiungere alle altre risposte, funziona benissimo sulla Debian installare, ma non funziona ancora sulla Raspbian installare a causa del sostegno compilatore mancante. Maggiori informazioni possono essere trovate qui:

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=66&t=11634&start=25

Citato da quello che sembra essere la risposta più informata:

Da quanto ho capito, Raspbian utilizza un diverso "convenzione di chiamata", così galleggiante i numeri dei punti sono "trasferiti" sulla CPU in un modo diverso . Tutti i compilatori devono creare un codice macchina che utilizzi la convenzione di chiamata Raspbian . Non è un problema per il software compilato con GCC, come è configurato per utilizzare tale convenzione di chiamata per impostazione predefinita.

Tuttavia, quando si utilizzano compilatori meno comuni (come il CLI mono -> compilatore just-in-time del codice macchina), le cose non sono ancora del tutto funzionanti. Il compilatore mono JIT utilizza apparentemente la vecchia convenzione di chiamata per tutto ciò che compila, perché nessuno ha ancora implementato la nuova convenzione chiamata in mono. Va bene fino a quando il codice mono non chiama in un codice non mono, ma si interrompe non appena si utilizza una libreria nativa .

I dettagli in questo sono probabilmente errati, ma forse descrive il problema in generale.

Edit: E per chiarire questo, la "convenzione di chiamata Raspbian" non è creata appositamente per raspbian. È lo stesso di debian armhf e (penso) qualsiasi altro linux che usa armhf.

+6

Sai se è qualcosa che si" risolverà "o qualcuno dovrà accenderlo? –

+0

@Scott Sfortunatamente non sono sicuro, non sono sicuro di come sia la storia di sviluppo su Mono in questi giorni. –

+1

Almeno per il momento, sembra che il mono non abbia più il supporto per Raspbian (ARM hard float). http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=686123 –