Domanda Come iniziare con i processori ARM?


È consigliabile iniziare direttamente con la scheda tecnica e il manuale utente di un processore ARM per un principiante o prima avere un'idea del mondo ARM e poi andare avanti?


16
2017-08-02 17:08


origine


risposte:


Diverse buone risorse sono descritte nelle risposte a questa domanda correlata:

Inoltre, Hitex ha "Insider's Guides" per alcuni microcontrollori diversi basati su processori ARM (gratuiti, ma richiede la registrazione):

La maggior parte di loro (se non tutti) sono download gratuiti (penso che siano sponsorizzati dai produttori di microcontrollori). Sono più orientati ai microcontrollori piuttosto che alle specifiche ARM, ma includono alcuni dettagli ARM e sono grandi panoramiche dei micros e delle periferiche nei micros.


4
2017-08-03 04:36



Quando comincio con una nuova (per me) tecnologia, comincio individuando quanti più fogli di dati e note applicative che posso e semplicemente leggendoli direttamente. Il primo obiettivo è quello di mettere subito alla prova il gergo (e i nomi dei giocatori) unici per quella tecnologia.

Con ARM, inizierei con www.arm.come la loro documentazione al Centro informazioni ARM.

Aggiornare: Vorrei anche immergermi in una o più linee di prodotti di produzione, compresa la lettura di almeno un manuale per programmatori di famiglia. Se i tuoi piani di progetto sono abbastanza fermi da sapere quale CPU ARM specifica verrà utilizzata, allora puoi fare a meno di concentrarti su quel modello specifico e sui suoi parenti stretti. Se stai cercando di familiarizzare con l'ARM in modo che tu possa farlo scegliere la CPU da utilizzare nel progetto, quindi campionare una vasta gamma di famiglie è quasi sicuramente il piano migliore.

C'è una grande lista di Licenziatari della tecnologia ARM. Di questi, alcuni produttori hanno prodotti (basati sul sapore CORTEX-M3 del core ARM) che IMHO si distingue per applicazioni di sistemi embedded profondi.

La mia azienda ha in corso progetti basati sulla famiglia STM32 di ST Microelettronica. Questa famiglia ha molte periferiche on-chip con funzionalità che saranno familiari a chiunque provenga dal mondo 8051, o dal mondo PIC, e dispone di FLASH e SRAM sufficienti sul chip per rendere le memorie esterne opzionali.

Ho sentito molte cose positive sulla famiglia Stellaris da Luminary Micro. Anch'essa si adatta perfettamente a un numero di esigenze della piattaforma integrata.

Considerati i prezzi attuali delle schede di valutazione entry level, vi consiglio caldamente di raccogliere uno o più chip simili alla vostra nicchia di applicazione target prevista. Una scheda con un piccolo LCD, un accelerometro, un paio di LED, un pulsante o due, l'accesso ai pin GPIO non impegnati, un'interfaccia USB JTAG integrata e una catena di strumenti di sviluppo incrociato completa basata su GCC possono essere avuto per il STM32 (per meno di US $ 40 nel 2009, ma quel modello è stato interrotto) nel ballpark da $ 100, per esempio.

Pacchetti simili possono essere trovati per molti altri prodotti basati su core ARM.

Un altro modo in cui viene trovato ARM è il core della CPU in un sistema su un chip. Un bel po 'di produttori SOC stanno licenziando una CPU ARM per mettere il loro silicio insieme al loro hardware dedicato. Ho visto chip di compressione video, chip di rete, firewire per adattatori ATA e dispositivi USB costruiti in questo modo, e questo è solo un campione di articoli pubblicati e comunicati stampa che mi viene in mente.

Aggiornamento 2, 2013: Un punto di accesso molto accessibile ad una famiglia di SOC "tipica" basata su ARM può essere visto nel Raspberry Pi e i vari Beagle consigli di famiglia. Entrambi sono rivolti a sperimentatori e hobbisti, entrambi usano SOC con core ARM e risorse aggiuntive come capacità video e audio, ed entrambi eseguono linux out of the box.

Ci sono anche una ricca varietà di sistemi sui produttori di moduli che forniscono una scheda mezzanino contenente un sistema di avvio completo per il montaggio su una scheda personalizzata che fornisce l'alimentazione ei connettori I / O necessari per uno specifico sistema embedded. Uno di questi è Gumstix. Gumstix AirSTORM fornisce Wi-Fi, Bluetooth, DRAM, NAND FLASH e un TI OMAP3 ARM SOC. Una scheda carrier adatta può supportare un pannello LCD o HDMI, 10/100 ethernet, host USB e OTG e connessioni audio analogiche a livello di linea, oltre all'accesso a una varietà di pin GPIO aggiuntivi e periferiche su chip.


8
2017-08-02 19:05



Consiglierei di ottenere un BeagleBoard. Hanno il supporto JTAG in modo che tu possa vedere cosa sta succedendo nell'hardware, una sorta di debugger hardware. Ci sono diverse build di linux che funzionano su di esso. C'è anche una grande comunità attorno a te che ti aiuterà mentre lavori. Ho Ubuntu Jaunty in esecuzione sul mio, quindi non c'è la fine delle utility e dei compilatori che è possibile eseguire.


6
2017-08-02 17:56



Vorrei e faccio surf su sparkfun.com, loro portano le tavole olimex e le fanno da sole. Anche Luminary Micro / stellaris sono buoni. Il beagleboard è più una piattaforma Linux che qualcosa che accedi alle caratteristiche / istruzioni del braccio stesso. Puoi usarlo ma per quei soldi potresti comprare da qualche parte tra 3 e 7 differenti schede di valutazione del microcontrollore basate su ARM. In ogni caso, inizierei con una tavoletta avvolta attorno a un microcontrollore a braccio, st o lpc probabilmente, il micro luminare è solo il pollice2 che farei solo dopo aver bagnato i piedi con le istruzioni sul braccio e poi le istruzioni del pollice.

Sono anche un fan dell'uso del gameboy advance come piattaforma di apprendimento per il braccio (non l'NDS, che è avanzato, inizia con la famiglia GBA).

Avrai bisogno del BRACCIO ARM (il Manuale di riferimento sull'architettura ARM), e poi ogni specifico è il core ha il suo TRM, avrai bisogno di entrambi per imparare quali istruzioni sono a tua disposizione. Per la maggior parte questi manuali sono buoni sia come riferimento che come apprendimento da zero.


4
2017-08-03 18:16



Vorrei prima ottenere una scheda di valutazione come STR750-LOVE. Quindi compilare e comprendere gli esempi. Dopo esserti sentito a tuo agio con gli esempi, è ora di passare alla comprensione di ciò che è sotto il cofano e scrivere il tuo codice. Una parte importante del processo di apprendimento è cercare di fare qualcosa e quindi dover eseguire il debug e farlo funzionare. Se vuoi diventare un esperto presso l'ARM devi essere in grado di leggere l'assemblea con sicurezza. Ho appena avuto un'intervista per essere uno sviluppatore di firmware ARM e tutto quello che ho fatto per la parte tecnica è stato analizzare il codice assembly THUMB e trasformarlo in codice c. La maggior parte dei compilatori ha un'opzione per generare l'assembly che generano.


3
2017-08-02 17:44



Nelle parole di Tom Lehrer "Plagio, plagio, lascia che il lavoro di nessuno sfugga ai tuoi occhi".

Oppure sii come Newton (e Bernard) sulle spalle dei giganti.

In altre parole, scopri cosa hanno fatto le altre persone e, idealmente, evita di reinventare le ruote.


1
2017-08-02 17:13



Comincerei con una scheda di sviluppo economica e un software di esempio, e andrei da lì, cercando ciò che devi sapere mentre procedi.

Un buon primer per STM32 basato su core ARM è il nome appropriato STM32 Primer.

Non inizierei con il manuale tecnico, se non per una navigazione molto veloce. Quello per STM32 ha una lunghezza di oltre 600 pagine e il relativo manuale Cortex-M3 è di altre 400 pagine. Non esattamente una lettura leggera!


1
2017-08-03 18:30



Dipende davvero dal tipo di ARM, è un mondo molto vasto. Di solito ARM è integrato in un SoC (sistema su un chip). Se ti stai preparando a migrare verso un fornitore di SoC specifico, dovresti considerare tutto questo. Nella mia esperienza, le scelte di cifratura e cache del SoC hanno un'influenza maggiore del nucleo reale (tranne che per le prestazioni).

Per quanto riguarda le schede di valutazione: ho una buona esperienza con Luminare micro ($ 50- $ 60 range) Cortex M3. Viene fornito con un ambiente di sviluppo completo (eclissi), esempi, librerie e alcuni componenti hardware (ad esempio USB, Ethernet, display OLed) ed esempi che è possibile eseguire e imparare da. Imparare facendo è più divertente che imparare leggendo. Mi aspetto che ti sentirai a tuo agio dal 8051 al Cortex M3.

Nella fascia alta dello spettro, la beagle board è un vero cruncher di numeri che può anche eseguire Linux.


1
2017-08-04 11:23