Sto iniziando a sviluppare un'applicazione nel pannello integrato da http://www.embeddedarm.com. Sono un principiante nello sviluppo di applicazioni embedded. Vorrei risorse come libri, guide online che mi consentiranno di sviluppare applicazioni in braccio incorporato. Stavo pensando di usare Linux come sistema operativo.Risorse suggerite per il programmatore ARM newbie?
risposta
Una volta eseguito tutto, è principalmente la programmazione linux. Se inizi con una scheda di valutazione, credo che tu abbia già molti strumenti. Ad ogni modo, potresti trovare utili i seguenti collegamenti.
Toolchain: cross-compilation. Puoi andare nel modo più semplice, ovvero scaricare una toolchain predefinita da code sourcery. Oppure puoi andare nel modo più duro e costruire la tua catena di strumenti. Il modo più difficile è tuttavia reso più facile se si utilizza lo strumento giusto. Croostool-ng è un progetto sucha con una mailing list molto reattiva.
Kernel: bene, architettura ARM è stato in linea principale per un po ', tuttavia, se avete qualche domanda specifica ARM, si dovrebbe sicuramente chiedere loro there
Userspace: Una volta che il kernel si sta avviando, è necessario un userspace per eseguire, cioè alcuni filesystem, shell, libreria C, processo di inizializzazione ecc ... Per costruire tali strumenti, ci sono molte opzioni. Uno è fare tutto da solo. Si inizia con busybox, quindi si continua con i vari strumenti necessari. Oppure puoi andare con strumenti automatizzati e configurabili. La mia preferenza va a ptxdist, perché ha il giusto livello di complessità (per il mio uso). Un'altra opzione è buildroot che non conosco. E se ritieni di aver bisogno di qualcosa di più potente forse puoi dare un'occhiata a OpenEmbedded.
Mi sono imbattuto in alcuni libri relativi allo sviluppo integrato, ma era più simile a script documentati. Costruire un sistema embedded completo è difficile, e penso che troverete più informazioni negli strumenti e nella mailing list che nei libri.
Dai uno sguardo allo www.gnuarm.com. Embedded.com ha anche alcuni articoli su ARM.
A un certo punto è necessario comprendere un certo livello di linguaggio Assemblaggio ARM. "ARM System Developer's Guide" by Andrew Sloss, et al è davvero un buon libro per l'assemblaggio ARM.
Se si dispone di una scheda della serie TS-7000, è possibile abbonarsi allo TS-7XXX mailing list.
Un'altra grande risorsa linux incorporata è Embedded Linux: Hardware Software & Interfacing, eseguita dall'autore di quel libro. Fornisce diversi esempi per lavorare con Embedded Linux, molti dei quali vengono eseguiti sulla piattaforma TS-7XXX.
Penso che dipenda dal tipo di applicazioni che si svilupperanno.
Per Linux (non Android) e le applicazioni nulla di speciale per il dispositivo ARM, non penso che sia necessaria alcuna conoscenza specifica per ARM tranne che per la catena di strumenti di build. Distribuzioni come Ubuntu e Arch hanno versioni basate su ARM, quasi tutti i pacchetti relativi agli sviluppatori nei loro repository possono funzionare con ARM.
Per applicazioni che utilizzano dispositivi come fotocamera, accelerometro e altri, se hanno un driver su Linux, niente di cui preoccuparsi.
Ciò di cui si ha veramente bisogno di preoccuparsi sono i componenti hardware che non hanno driver o driver molto semplici su Linux, in tal caso, è necessario comunicare direttamente con il dispositivo. O devi lavorare all'interno del kernel o usare l'interfaccia di ioctl like. Quindi la gestione della memoria ARM, la gestione degli I/O (mappatura, sondaggio, ecc.), La programmazione degli interrupt sono ciò che devi imparare.Basta trovare il manuale per la tua CPU sul sito del venditore, come trovare il manuale di sviluppo Intel x86 o x64.
L'ho fatto. Ho anche trovato che il loro kit di sviluppo è molto utile per un principiante. – yrcjaya