Perché non imparare entrambi? Puoi ottenere una tavola cortex-m3 per circa 12 dollari e qualcosa come un sam7 per circa $ 35. Per quanto riguarda ARM, se vuoi avere una buona conoscenza, inizia con ARM7TDMI, impara ARM e thumb, quindi porta il pollice alla corteccia-m3 e quindi alle aggiunte di thumb2. ARM non produce chip che vendono core di processore, il venditore ci avvolge la loro salsa speciale. È bene dilettarsi con i diversi fornitori con gli stessi core. L'I / O e le periferiche su chip ti faranno o distruggeranno, ed essere in grado di scegliere il fornitore giusto e / o evitarne uno che non è adatto per l'attività è prezioso.
Di volta in volta Sono coinvolto nelle decisioni di assunzione e sono d'accordo con i markrages. Non si tratta solo di conoscere un core davvero bene, ci sono molte più cose da sapere, non essere così specifico. Chiedete ai 6502 guru (che non sono andati avanti con l'industria) come stanno andando le loro carriere. Pochissimi pochi molto bene il resto, non tanto. Mi piace vedere un candidato che ha il proprio tempo e non solo per una lezione universitaria, che ha acquistato un microcontrollore o una piccola scheda di valutazione e ha effettivamente fatto qualcosa con esso. Anche se si impara a far lampeggiare i led in quattro modi diversi utilizzando i perhiperali interni. Preferisco qualcuno che abbia provato più di un processore e fornitore, ma non possiamo avere tutto ciò che vogliamo. Quanto velocemente e bene puoi raccogliere un foglio dati o un set di istruzioni o una diversa toolchain può essere più prezioso di quanto tu sia un esperto in un core specifico di un fornitore specifico. Alcuni fornitori hanno buoni fogli dati e schemi, ecc. Altri no, è necessario sapere che tutti i manuali di riferimento sono difettosi ed essere in grado di hackerare e cercare su Google i punti deboli del materiale di riferimento.
ARM è il posto dove stare in questo momento, sarebbe sciocco ignorare i loro core e i principali fornitori di chip che usano i loro core. Ma tieni gli occhi aperti anche su quelli vecchi, nuovi e diversi. L'8051 è ancora usato in molti posti, semplicemente non morirà. Microchip vende ancora foto. L'avr era comunque popolare (atmel sa davvero come creare clienti felici) e arduino ha portato quella popolarità a un livello completamente nuovo. Niente è vicino ad ARM in generale, ma ARM non è l'unico attore nei diversi mercati a cui partecipa.
Sparkfun ha un numero di schede per meno di 50 dollari, io consiglio di acquistarne alcune. Le schede di intestazione olimex sono buone, ad esempio sam7s-h64 o 256. st ha la sua scheda discovery stm32 (NON CONFONDERLA CON LA discovery STM8, linea di processori completamente diversa) per circa 10 dollari. A meno di $ 5 non puoi evitare di ottenere uno o due launchpad msp430 (non un braccio ma un altro, buono, core del microcontrollore). Puoi ottenere i tuoi piedi con il coridium armmite, o l'acero, impronta arduino ma basata su ARM non avr. Uno più dell'altro vuole fornire anche la sandbox per sviluppatori. l'mbed2 è davvero facile da usare, lpc è ben noto nel mondo dei microcontrollori da braccio, ma probabilmente sono le mie meno preferite tra le scelte, provane alcune diverse, almeno una delle scelte da atmel. Stellaris ora di proprietà di ti è stato il primo a uscire con la cortex-m3, a parte la serie 800 che ho murato in un'ora o due istantaneamente perché non ho prestato attenzione alle 17 etichette di avvertenza ovunque, mi sono piaciute tutte le loro schede che ho provato. Almeno per parlare con le periferiche e conoscere l'oled. Se vuoi agganciare il microcontrollore a qualcosa che non è sulla scheda, le schede stellaris sono probabilmente l'ultima scelta. Hanno masticato quasi tutti i pin I / O e devi tagliare le tracce per riaverli, fondamentalmente pagando per cose sulla scheda che non intendi usare, prendi solo un coridium armmite pro o una scheda di intestazione olimex o qualcosa del genere. evita lxpresso, è specificamente mirato a un venditore di strumenti, non avvicinarti nemmeno, no no ... vai con mbed2 se vuoi davvero ottenere un lpc cortex-m3 e non devi nemmeno preoccuparti del sandbox incoraggiano, compila il tuo file .bin con qualsiasi strumento che ti piace e copialo semplicemente sulla cosa che sembra una chiavetta USB e premi il pulsante di ripristino. Questa è la bellezza di mbed2, sei completamente libero di usare qualsiasi sistema operativo host e strumenti di sviluppo che ti piacciono. Il negativo è che la retina brucia i LED blu. Ho dovuto sostituire il mio con i LED verdi per evitare l'emicrania istantanea.
Rileggendo la tua domanda. Della famiglia attuale di core ARM. ARM7TDMI è il più tradizionale che supporta il set di istruzioni di base a 32 bit. ARM ha preso quel set di istruzioni e ha creato un set di istruzioni ARM ridotto, noto come set di istruzioni thumb. Le istruzioni thumb mappano uno a uno con le istruzioni ARM (il contrario non è vero). In modo che il core debba elaborare solo le istruzioni ARM, le istruzioni del pollice vengono tradotte in istruzioni ARM durante il percorso nel pipe. Non è un cattivo design / idea. Guarda l'avanzamento del gameboy, i bus a 16 bit dappertutto, il taglio dei costi, ecc. Ora il GBA è l'eccezione alla regola secondo cui il pollice funziona più lentamente del braccio, non a causa della traduzione in istruzioni di braccio ma perché era un sottoinsieme questo ti limitava per lo più a metà dei registri ea due istruzioni di operandi invece di tre, quindi ci vollero più istruzioni per fare la stessa cosa con il pollice che con il braccio. (I file binari Thumb sono spesso un po 'più piccoli). Il passo successivo è stato thumb2, fondamentalmente questa è una lunghezza di istruzione variabile, alcune istruzioni sono a 32 bit o 16 bit, hanno creato un equilibrio tra alcuni dei punti deboli del set di istruzioni del pollice e la forza del braccio. i binari non sono così piccoli, ma grandi come solo un braccio, quindi con il guadagno di prestazioni è attraente per i microcontrollori. L'altra cosa che hanno fatto è creare questi nuclei corteccia-m che sono solo thumb2, non hanno un nucleo del braccio sepolto all'interno, questi sono attraverso e attraverso thumb2. magra e meschina. Ora anche questi eseguono thumb, quindi puoi usare solo gli strumenti thumb che hai imparato da ARMv4T (arm7tdmi). Se non stai operando a livello di linguaggio assembly, la MAGGIOR PARTE di questo non ha alcuna importanza per te, la parte che può importare sono alcuni bit necessari per l'assemblaggio, come la tabella delle interruzioni / eccezioni è completamente diversa sulla serie cortex-m da i tradizionali core ARM. Se stai usando il sandbox di qualcuno, non lo vedrai nemmeno. se non si scrive l'assembler, allora quello che devi imparare è come usare i compilatori incrociati e forse gli script del linker. Con codesourcery si crea una buona toolchain gcc per il braccio che è per lo più fatta per te. Potresti voler arrivare a capire che cose come ARM7 e ARMv7 sono due cose completamente diverse, ARM7 è un ARMv4, ARMv7 è sul lato più recente. Sappi anche che ARMv5, ARMv6, ARMv7 hanno tutti aggiunto nuove istruzioni e impara a dire al compilatore quale core hai in modo che possa fare scelte migliori usando le istruzioni più recenti, fornendo prestazioni migliori, allo stesso modo non accidentalmente usando la scelta di core sbagliata e generando istruzioni che non vengono eseguiti sul tuo core. Il cortex-m3 e ora il cortex-m0 sono destinati ai microcontrollori tradizionali, le persone a 8 bit. La serie cortex-A è la fascia più alta destinata a telefoni con grandi display e baloney baloney, desktop, server ecc. Hai menzionato i microcontrollori quindi è probabile che tu rimanga nell'arena ARM7 o cortex-m. Ho un simulatore di set di istruzioni thumb (non thumb2) chiamato thumbulator su github.com che si avvia come un cortex-m, quindi oltre alle periferiche, che sono facili da aggiungere, puoi prendere il codice che impari a eseguire lì e passare a un corteccia-m3 o m0. qemu è un buon simulatore ma è molto più difficile da guardare durante l'esecuzione e molto più difficile da aggiungere periferiche, ma allo stesso tempo supporta i set di istruzioni braccio, pollice e pollice2. (c'è un clone di stellaris lì dentro, quindi puoi usarlo per avere un'idea di cortex-m3 e usare i documenti di stellaris per trovare gli indirizzi periferici, ecc.).
Vai al sito web di ARM e trova ARM ARM (ARM Architectural Reference Manual) questo è il crogiolo di tutti i loro core, a questo punto con così tante variazioni sta diventando un po 'gonfio, quindi devi andare a cercare TRM (Manuali di riferimento tecnico) per i core specifici. In particolare il cortex-m3, vuoi davvero avere il TRM per ARMv7M penso che si chiami cortex-m3. Aiuta a separare thumb2 da ARM ARM. Comprendere il processo di avvio del cortex-m3 e come varia dal braccio a 32 bit è credo anche nel TRM, forse è SOLO nel TRM. Un'altra cosa da sapere, un particolare venditore acquisterà un particolare core e rev di quel core. ARM può migliorare quel core e vendere una rev3 per esempio, ma il venditore con la rev2 ha la rev2. Anche se il sito web di ARM mostra il TRM per rev2 come sostituito dal rev3 TRM, il rev2 TRM è quello che desideri in quanto corrisponde al core che stai utilizzando, a volte puoi confonderti o perderti completamente usando il TRM sbagliato. ARM preferisce che i fornitori non documentino i core stessi per gestire la documentazione, quindi è necessario colmare questa lacuna da ciò che il fornitore di chip ti sta dicendo e quali documenti sul sito ARM ottenere. Questo genere di cose rende difficile il supporto Linux per ARM per gli ARM di fascia alta. E di recente ho notato alcuni enormi errori nel codice Linux che collegava l'errata errata, il numero di giri sbagliato al fornitore sbagliato e il core sbagliato. Allo stesso modo inizializzare le cose in modo sbagliato perché è stato utilizzato il TRM sbagliato per scrivere il codice. È lo sfortunato effetto collaterale di avere core utilizzati da molti fornitori di chip in molti modi diversi, mentre quel core vendor sta rapidamente aumentando il numero e la qualità dei loro prodotti. Puoi fare quello che faccio io la maggior parte del tempo, compilare per la modalità ARMv4 arm o ARMv4 thumb e quel codice verrà eseguito praticamente su tutti i core che seguirono. Sfortunatamente gli strumenti, ben basati su gcc, hanno ancora qualche dolore e / o fastidio quando si usa il pollice. Richiede un po 'di pratica.
scusa per la lunga risposta, spero che sia utile.