
Il core ARM cortex M4 monta su la struttura portante del suo predecessore ARM cortex M3 e apporta una miscela intelligente delle caratteristiche degli MCU (microcontrollori) e dei DSP. Il core ARM cortex M4 implementa l'architettura del set di istruzioni ARMv7-ME.
Questa è la definizione di ARM Thumb 2 e offre la compatibilità con ARM cortex M3 e inoltre aggiungere nuove e significative capacità con le estensioni DSP e SIMD. Le istruzioni di moltiplicazione e di accumulo supportano fino a 32 x 32 + 64 --> 64.
Il core ARM cortex M4 supporta una FPU opzionale
Il core ARM cortex M4 supporta anche una FPU (Floating Point Unit) single – precision che include un'estensione del file di registro di 32 registri di dati FP (floating point) a 32 bit.
La figura mostra il modello base di programmazione utente, che include:
-
- 13 registri general-purpose, r [0-12], stack pointer (r13=SP), registro di contatto (r14 = LR), contatore del programma (r15 = PC)
- Stack pointer, registro di contatto e contatore del programma
- xPRS (Multiple Program Status Registers)
ISA definisce operazioni dalla lunghezza variabile con le istruzioni a 32 bit o a 16 bit. Esso supporta anche grandezze e dell'operando dei dati a 8 bit, a 16 bit e a 32 bit interi, più campi di larghezze che vanno da 1 a 32 bit.
I core ARM Cortex Mx vengono utilizzati negli spazi applicativi in cui l'operazione deterministica e la dimensione generale sono più importanti delle prestazioni in senso assoluto. Come risultato, il core ARM Cortex M4 presenta una micro architettura pipeline a tre stadi: ricerca e ricezione dell’istruzione (instruction fetch, FE), decodifica dell’istruzione (instruction decode, DE) ed esecuzione dell’istruzione (instruction execute, EX). Le estensioni aggiunte dell'istruzione DSP e SIMD vengono eseguite in una struttura per l'accumulo e la moltiplicazione ad alta velocità; tutte le istruzioni di accumulazione opzionale e di moltiplicazione hanno un tempo di esecuzione al singolo ciclo.
Le implementazioni del core ARM cortex M4
Il core ARM cortex M4 implementa interfacce di bus multiple a 32 bit che sopportano una architettura di memoria Harvard. Nello specifico, il core fornisce una connessione Harvard modificata con il codice AHB e bus di sistema. Il codice di bus è di solito utilizzato per il recupero delle istruzioni e gli accessi ai dati dei PC, mentre il bus di viene di solito utilizzato per gli accessi alla RAM e alle periferiche. Una connessione PPB (Private Peripheral Bus, bus di periferica privata) a 32 bit verso diversi ed importanti moduli (come ad esempio il Nested Vectored Interrupt Controller) è accessibile solo al core.

Qualcuno mi linka una miniguida ai microcontrollori ?
il sito della Microchips per iniziare.
Mmm… non mi pare un consiglio proprio azzeccato…
piuttosto meglio iniziare dal sito dell’ARM dove potrai trovare tutti i dettagli di questo processore e dei suoi fratelli!
Vi invito a curare la qualità dei commenti inseriti, onde evitare possibili cancellazioni degli stessi.
Si prega quindi di inserire commenti pertinenti e che siano rivolti a migliorare l’esperienza offerta al lettore. Aumentando la qualità dell’articolo, approfondendo l’argomento trattato.
“una guida sui microcontrollori” è facilmente reperibile da una ricerca nel nostro blog tramite il form cerca, in alto a destra.
Qui si tratta del nuovo ARM Cortex M4, non un generico micro.
Al tempo stesso siamo invece ben lieti di pubblicare commenti di aiuto, domande/richieste, di chi, per esempio, vuole avvicinarsi al core ARM, piuttosto che chi volesse sviluppare una tesi sempre sugli ARM-Cortex M4 oppure sta scegliendo un ARM per il suo prossimo progetto e chiede consigli….
Spero di essere stato chiaro.
http://it.wikipedia.org/wiki/Microcontrollore
dopo prova ad andare su il sito del arduino,
per gli esempi pratici
http://www.arduino.cc/
a mio avviso è troppo complicato per iniziare, meglio cercare di capire il funzionamento di microprocessori più semplici.
La moderazione dei commenti è definita qui ed anche domande e dubbi possono essere rivolte nei commenti del link segnalato.
Ogni articolo deve avere commenti relativi all’articolo per non finire OT e quindi fornire una esperienza negativa al lettore che, se è qui adesso e ci legge, vuole approfondire l’ARM Cortex M4 o gli ARM in generale o i progetti a base ARM.
Eventuali richieste possono essere fatte aprendo una discussione nel Forum, nella sezione VARIE
http://it.emcelettronica.com/forum/varie
Grazie della collaborazione.
Segnalo il link di un interessante seminario a cui ho partecipato tempo fa, su come è possibile facilmente e vantaggiosamente passare dagli 8bit ad ARM in pochissimo tempo. Con i costi in discesa degli ARM, è sicuramente un’opzione da considerare.
Il seminario era sugli ARM7 della NXP ma il core base è lo stesso per tutti gli ARM, il principio base vale anche per questi nuovissimi ARM Cortex M4 di Freescale
(ma anche Texas ed Atmel)
http://it.emcelettronica.com/come-migrare-da-un-8bit-ad-arm-un-giorno
Concordo anch’io. Io ho iniziato studiando chip raccattati qua e là da vecchi computer o da vecchi aggeggi elettronici. Scaricavo i DATASHIT dal web e poi provavo a fare dei circuiti che funzionassero.
Rememeber
If you can’t open it, you don’t own it.
Datashit significa un altra cosa, il termine esatto è Datasheet.
A meno tu non sia voluto essere appositamente ironico, sulla bassa qualità di alcuni datasheet….
Abbiamo eliminato 2 commenti che NON riguardavano ARM Cortex M4
come detto poc’anzi
http://it.emcelettronica.com/core-technology-arm-cortex-m4#comment-8113
@Wales8686 & @linus
vi pregherei di fare riferimento a quanto sopra per ogni richiesta OT
Grazie!
Ho intenzione di passare ad architetture a 32bit e ho sempre lavorato (e tuttora lo faccio) con microcontrollori della Microchip. Ho iniziato a studiare l’architettura MIPS dei PIC32 ma la cosa che mi lascia un pò perplesso è che quando si tratta di scegliere un’architettura a 32bit tutti citano Cortex M3 /M4. Secondo voi (per chi magari ha avuto esperienza con entrambe le architetture), volendo magari essere competitivo sul mercato, sarebbe bene abbandonare completamente la soluzione Microchip e passare ad architetture Cortex? Un parere sulle 2 architetture!
Salve Alex87ai,
Io lavoro con ambi soluzioni, credo essere stato uno dei primi in europa a lavorare sui PIC32 (fattura microchipdirect alla mano), specialmente lanciando prodotti commerciali attualmente in produzione.
Che dire! mi lascia un po l’amaro in bocca il PIC32, alla fine compie molto bene i propositi proposti.
E sicuramente la gamma alta, ha tutte le caratteristiche utili in un progetto onChip(NET,USB,CAN,ecc) in un campo più MCU che MPU, da un’altra parte alcune caratteristiche sono state disegnate e concepite per essere acquisite rapidamente dai programmatori provenienti dalle architetture 8bits e 16bits della stessa Microchip.
Tagliando un po fuori i progettisti, con esigenze più generiche e allo stesso tempo più standards, specialmente parlando di interfaccia memoria volatile esterna.
Il core m4k mips è stato parzialmente implementato e realmente è un primo passo,
per avvicinarsi al mercato 32bits.
Specialmente con la recente acquisizione da parte di Microchip del potente core m14k, vedremo se le promesse di marketing saranno realtà tecniche.
Pur difendendo un po il PIC32, attualmente i cortex sono più vicini ai progettisti
abituati ai gli OS embedded e agli ambienti di sviluppo multipiattaforma.
Il fatto che moltissimi fabbricanti hanno una linea M3 lo dice tutto, però i prodotti realmente non sono tutti uguali, non è lo stesso un “M3 di Luminary Micro” che un “M3 di ST” o di Cypress.
Ogni fabbricante ha creato il suo proprio ibrido, affiancando al core M3, periferiche eccezionalmente integrate e funzionali, e/o sfruttando al massimo caratteristiche native di questo fantastico core, differenze che dovrebbero aiutarti a scegliere un soluzione o un’altra.
/////////////////TI-STELLARIS:
Freq.25Mhz/80Mhz(nel 2009 c’erano anche versioni a 100Mhz)
Attualmente TI possiede la linea più grande di prodotti con core CortexM3, grazie all’acquisizione nel 2009 di Luminary Micro, compagnia pioniera dell’architettura CortexM3, inoltre possiede anche il record come maggior fabbricante di core’s basati su architetture ARM non solo cortex-M.
Nelle gamme alte, ci sono package full-peripherals(NET,USB,CAN,ecc)
caratteristiche distaccate: slave APB,”μDMA” con triple indirizzamento MEM-PER, MEM-MEM,PER-MEM , insomma un controller DMA veramente completo.
Un’altra bella caratteristica è la presenza del “SCB” System Control Block,
che permette controllare e configurare le eccezioni o errori di sistema in una modalità più vicina a un midium-level che un trap-controller.
//////////////////ST-STM32xx:
Freq.36Mhz/72Mhz
Secondo nella lista, per numero di prodotti basati in core M3, per me una delle compagnie che più crede nel cortex M3, innumerevoli le board di sviluppo e demo kit presenti nel mercato, come tante sono le compagnie che hanno investito sui cortex M3 di ST, dimostrando che ST ha creato un prodotto stabile e che si sposa alla perfezione con piccoli e grandi progetti, caratteristiche distaccate: “FSMC” flexible static memory controller, il metodo più semplice di interfacciare Memorie esterne e dispositivi paralleli, con caratteristiche che ne permettono la perfetta integrazione di controllers TFT,LCD,NIC,USB,ecc, due livelli slave APB, due master AHB bus interni tipici di architetture ARM, e in gamma alta, 2 canali DAC.
//////////////////Cypress-PSoC® 5:
Freq. 40Mhz/80Mhz
Cypress sorprende con la dimestichezza con la quale è passata dai core 8051 a M3,
non sacrificando minimamente le caratteristiche alla quale gli utenti PSoC® 3 , siamo abituanti , e addirittura aumentando la quantità di periferiche e controllers disponibili. Del digital subsystem di PSoC® ci sarebbe da parlare per delle ore,e nell’aspetto analogico, una caratterista molto utilizzata è il “DFB” digital filter block con la quale è veramente facile implementare filtri FIR o IIR.
Senza dimenticarci di 4 canali “IDAC” fino a 2.048 mA. Infine forse sarebbe più facile dire che PSoC® 5 è un PSoC® 3 con core M3.
//////////////////ATMEL-SAM3x:
Freq.64Mhz/96Mhz
Anche Atmel, ha una linea M3, e nonostante siano pochi prodotti , fanno la differenza,inizialmente gli entusiasti del AP7000 sentivamo la mancanza del doppio NET controller integrato, ma una volta vista la superbia con la quale sono stati strutturati i bus interni, ci dimentichiamo tutto, un matrice del AHB bus che permette ben 5 masters e 10 slaves, permettendo una simultaneità incredibile. dimostrando con questi prodotti, saperlo fare molto bene e in mia opinione stupendamente! Caratteristiche distaccate:”HSMCI” High Speed Multimedia Card Interface , “PDC” Peripherals DMA ben 17 canali indipendenti, “SMC” Static Memory Controller, simile al “FMSC” di ST, però molto più orientato ad interfacciare memorie esterne, che periferiche parallele.
//////////////////ENERGY MICRO-EFM32 “Gecko’s”:
Freq.32Mhz
Energy micro punta sui cortex M3, come cavallo di battaglia per applicazione da basso consumo e multithread, allo stesso tempo tra le sue caratteristiche spiccano un decoder/encoder AES, 2″DAC” da 12bits, “LESENSE” controllo basso consumo per sensori, in alcune versioni è presente un controller LCD, e come non citare “PRS”
Peripheral Reflex System , interessantissima caratteristica che permette l’interconnessione tra periferiche, senza utilizzare la CPU, credo che il nome Energy Micro non è solo un marchio commerciale, ma il pilastro ideologico dei loro prodotti.
//////////////////NXP-LPC1000(Family):
Freq.70Mhz/100Mhz
NXP sperimentato fabbricante di architetture ARM7/9 e in cortexM0 ,come Atmel, investe in pochi modelli, ma con delle performance considerevoli,
una matrice del AHB bus a 4 livelli e 2 ABP bridge.
Possiede versioni full-peripherals(NET,USB,CAN,ecc) con un master AHB e un DMA dedicato.
adatto per prodotti di tipo “media”, dove è richiesta una buona relazione tra prestazioni e il basso consumo, oltre ad un ottimo prezzo.
//////////////////ACTEL-SMARTFUSION:
Freq. 100Mhz
Effettivamente è una fusione molto intelligente, quella proposta da Actel, che tra poco passerà ad essere solo un marchio commerciale di Microsemi.
Beh! che dire, immaginate un core M3 con un bus AHB multilayer, un net controller e un FPGA, in un unico package, si proprio cosi, è la soluzione più stravagante ed efficiente con la quale ho avuto la felicità di lavorare , e credo che cercherò implementarla in nuovi progetti.
Questi sono alcuni dei prodotti M3 sul mercato, però ho deciso commentare solo quelli con la quale ho realmente ho lavorato, e presto spero includere nella lista il piccolo ADUCRF101 di Analog Device.
Alex87ai, forse non sono stato sintetico, però spero averti chiarito quali sono le reali opzioni del mercato(dal mio punto di vista).
Un Saluto a tutti
Maurizio
Grazie Fabrizio87 gli ho dato un occhio.
Non potevi essere più completo ed esauriente nella tua risposta. Grazie mille per aver risposto e per avermi delucidato sulla questione. Alla fine, ogni casa costruttrice cerca di tirare l’acqua al suo mulino e dalla semplice documentazione che si può ricavare da internet il confronto che mi hai fatto non sarebbe stato così evidente. Penso che non lascerò perdere la MIPS ma che inizierò ad approfondire anche l’architettura Cortex e vedrò di testarle entrambe al fine di poter contribuire anch’io, magari con un articolo su EOS, a fare chiarezza su questa eterna lotta! Grazie ancora!
Salve,
Dato che non si possono modificare i post con risposta, e dato che un amico che ha letto il post, mi ha fatto notare , che attualmente Cypress ha superato a ST
come numero di prodotti con core M3, rispettivamente 65 contro 62 di ST.
Rettifico che Cypress e al secondo posto e ST al terzo.
ed anche che Energy, che nella lista è stato posizionato casualmente, realmente sarebbe al 4 posto per numero di dispositivi.
Un Saluto a tutti.
Maurizio