Buon libro per principianti su ARM [chiuso]


26

Sto cercando un buon libro per principianti per i microcontrollori ARM. Dovrebbe coprire l'architettura della CPU e la sequenza di avvio e idealmente anche assemblatore, C e periferiche.

Ho un libro come questo per gli AVR e sembrano esserci diverse buone scelte per i chip Atmel. Il panorama ARM è più complesso con più fornitori e diverse classi di chip. Uno sguardo su Amazon non ha rivelato un chiaro favorito. Gradirei alcuni consigli.


Qual è il tuo libro per gli AVR? Sono curioso. Inoltre, ho un pacchetto di corsi della mia università per ARMs, ma temo che non vedrà mai la pubblicazione ...
Kevin Vermeer,

1
@ kevin-vermeer È un libro tedesco: Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie scritto da un professore in pensione. Copre tutti gli argomenti che ho menzionato nella mia domanda, anche includendo alcune cose interessanti come come contare le istruzioni dell'assemblatore per determinare quanto tempo sarà necessario un ciclo per iterazione.
kwo

Immagino di dover imparare il tedesco ...
Kevin Vermeer,

Sembra un libro interessante, peccato che non conosca bene il tedesco per poterlo leggere e capire.
Decano del

@kwo Immagino non ci sia speranza di ottenere una versione tradotta, giusto?
NickHalden,

Risposte:



13

Cercare il manuale di riferimento ARM ARM, ARM Architectural. Copre il processo di avvio, l'architettura, l'assemblaggio (ARM, pollice e pollice2), tutto. ARM ARM è generico, per il nucleo specifico a cui sei interessato ci sarà anche un TRM, Manuale di riferimento tecnico. Tutti questi documenti sono disponibili gratuitamente dal sito Web di ARM. Il TRM entrerà nei dettagli specifici per quel core, in particolare se si desidera utilizzare uno dei più recenti microcontrollori basati su Cortex-M3, la sequenza di avvio o diciamo che la tabella delle eccezioni è diversa dal ARM tradizionale e è necessario il TRM per Cortex-M3 per trovare le informazioni.

se si finisce con un braccio con una cache o mmu, potrebbe anche essere necessario ottenere il TRM dal sito Web di ARM. È necessario conoscere il core specifico incorporato nel chip del fornitore specifico, ad esempio il PL310 r2p0 può / potrebbe essere diverso dal r3p0. Il fornitore dovrebbe disporre di queste informazioni e potrebbe fornire collegamenti ao forse i documenti arm direttamente, normalmente non incorporano i documenti arm nella propria documentazione. Penso che ARM lo preferisca in questo modo.

Per quanto riguarda C, è solo C, niente di speciale, ARM è supportato dai compilatori mainstream, gcc, llvm, Keil (ora di proprietà di ARM), IAR, green hills, ecc. Microsoft ne ha persino / ne aveva uno (eviterebbe comunque). Niente di speciale per ARM, ma è necessario conoscere le sfumature per il compilatore specifico e il suo collegamento. Code Sourcery è la strada da percorrere in questi giorni per un compilatore ARM basato su gcc pronto all'uso, la versione LITE è scaricabile e utilizzabile gratuitamente e ci sono versioni a pagamento se si desidera supporto (più supporto gcc arm gratuito su google.com rispetto a hai tempo di leggere). Prima del code sourcery emdebian era un posto dove andare, per alcune cose yagarto e devkitarm e winarm avevano tutti / hanno soluzioni pronte per l'uso (per embedded e non necessariamente linux, Code Sourcery o emdebian se si desidera eseguire la cross-compilazione per linux).

Ho alcuni blog che non sono in realtà blog, ma posti dove mettere alcuni programmi di esempio e informazioni su come far apparire alcuni diversi microcontrollori basati su ARM. Alcuni chiedono un po 'di C, i blog più vecchi che mostro come costruire il proprio cross compilatore basato su gcc. Potrei avere anche informazioni su llvm (thumbulator ha un paio di esempi, non documentati però), out of the box llvm può essere usato come compilatore incrociato per un numero di piattaforme, non è necessario costruirlo su un obiettivo come gcc. E la generazione del codice di llvm ha raggiunto gcc 4.x (gcc 4.x non è necessariamente migliore di gcc 3.x e né gcc o llvm sono buoni quanto altri costi costosi per quelli come i compilatori ARMs).

http://stm32stuff.blogspot.com/

Da lì puoi fare clic sul mio profilo e trovare informazioni simili per lpc, lmi (luminary micro, le parti stellaris, ora di proprietà di ti) sam7. Non sono un fan della famiglia di lpc, mbed2 va bene oltre ai dolorosi led blu. in questo momento c'è un board basato su $ 12 stm32, qualcosa di scoperta, pronto per giocare con out of the box. coridium ha una scheda che corrisponde all'impronta di arduino come l'acero, può ottenere uno o entrambi a sparkfun (molte chicche a sparkfun). se stai cercando qualcosa di più potente, il beagleboard è stato doloroso per la mancanza di interfacce, la versione cinese allo stesso prezzo è / era migliore (mostrata in una settimana o due ma nessuna informazione di tracciamento di alcun tipo), ha ethernet e un porta seriale non avvitata. Mi piace la Hawkboard ma penso che non siano riusciti a seguire la guida alla progettazione e potrebbero avere problemi con l'omap. Mi è piaciuto openrd dalla gente di plug computing, ma odiava la versione plug. L'openrd ha un connettore di alimentazione e dati SATA sulla scheda, è sufficiente collegare un disco rigido, altre schede di questa classe ti costringeranno a qualcosa basato su flash (leggi: molto lento). i core marvell corrono comunque cerchi attorno alle ti omaps al momento.

oppure prova il mio simulatore di set di istruzioni per pollice thumbulator (github) gratuitamente, ma limitato a pollice, senza braccio (puoi prendere il tuo codice da esso sulle schede stm32, come quello da $ 12). l'armulatore che è in gdb e altrove è probabilmente più doloroso da usare, ma supporta arm and thumb, e qemu è facile da usare se non hai interesse a vedere cosa sta facendo il tuo codice oltre all'output della porta seriale. qemu supporta braccio, pollice e pollice2, penso che una o due tavole stellaris siano modellate lì.

Se conosci già l'assemblatore AVR, che non è un grande insieme di istruzioni (meglio di alcuni, peggio di altri) non dovresti avere problemi con ARM o pollice, un po 'più pulito, un po' più semplice. Allo stesso modo se hai fatto C incorporato (al di fuori di una sandbox) con l'AVR, ARM sarà lo stesso o più semplice. Puoi andare con il mbed o acero dove hanno sandbox che dovrebbero rendere più facile iniziare e quindi se vuoi avventurarti da solo puoi senza troppi problemi. il mbed semplicemente copi il .bin sull'unità flash virtuale, l'acero che usi il loro caricatore o dfu-util o qualcosa del genere che non ricordo.


Risposta fantastica.
NickHalden,

3

I buoni libri su ARM sono:

"ARM SOC Architecure" di Steve Furber

"ARM System Developers Guide" di Andrew Sloss, Dominic Symes e Chris Wright

"Manuale di riferimento dell'architettura ARM" di ARM

L'ultimo è disponibile gratuitamente sul sito ARM .

Sloss, Symes e Wright è eccellente se vuoi allontanarti dagli alberi per vedere la foresta, specialmente se hai dei sistemi embedded da fare.

Furber è uno degli architetti ARM originali e fa un ottimo lavoro guidandoti attraverso la logica del design di ARM e del modo in cui i core del processore ARM funzionano in generale.

Naturalmente tutto quanto sopra è solo una raccomandazione basata sulla mia opinione personale / soggettiva e non può essere vista come una spina per un particolare prodotto o autore.


Sarebbe utile formattare l'elenco dei libri come un elenco, includendo anche collegamenti per quei libri.
Trygve Laugstøl


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.