Académique Documents
Professionnel Documents
Culture Documents
es
Arquitectura ARM Cortex-M
y
soporte a lenguaje C
2012/0/0
Arquitectura Cortex-M y C
armcortexm.blogs.upv.es 2
!bjetivos
"nterpretar un programa ensambla#or escrito en $%umb2
&nten#er la nomenclatura #e la #ocumentaci'n sobre ARM
Cortex-M
(i)erenciar entre Cortex-M* y Cortex-M+
,aber enumerar las caracter-sticas y componentes b.sicos
#e la arquitectura Cortex-M
(i)erenciar los pasos #el proceso #e creaci'n #e una
aplicaci'n escrita en C
,er capa/ #e imaginar el esquema b.sico #e tra#ucci'n #e
un )ragmento #e c'#igo C al ensambla#or $%umb2
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es 3
Conteni#o
10Conceptos b.sicos #el 12
103ni#a# #e instrucci'n ARMv
20,egmentaci'n y riesgos
204uego #e instrucciones $%umb2
10$ipos #e instrucci'n
20Mo#i)ica#ores
*0$ra#ucci'n #e C a ensambla#or
105asos #e compilaci'n
+0Conceptos #e C en microcontrola#ores
10(e)inici'n #e variables y tipos #e #atos
20(epuraci'n y niveles #e optimi/aci'n
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es 4
ARMv
6a arquitectura ARM nace en 178 9)ec%a #el primer lan/amiento0
ARMv: ; <ersi'n #e la arquitectura.
ARM: ; =amilia #e procesa#ores basa#os en la misma
arquitectura pero con implementaciones #i)erentes.
ARMv; >ltima versi'n #e la arquitectura? pero varios #ise@os
#i)erentes que #an lugar a varias )amilias;
ARMv-A ; =amilia Cortex-A ; procesa#ores #e aplicaci'n
ARMv-M; =amilias Cortex-M* y Cortex-M+; microcontrola#ores
3n #ise@o ARM #e)ine los componentes y su )uncionamiento
6os #ise@os se compran... a esto se llama licenciar.
Ao to#os los componentes son obligatorios
Ca#a licencia#o pue#e %acer mo#i)icaciones en la implementaci'n
9#entro #e las especi)icaciones0
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es 5
&squema #e bloques Cortex-M
$exas "nstrument
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es 6
3ni#a# #e "nstrucci'n
5rocesa#or #e *2 bits
6os registros y las direcciones de memoria son #e *2 bits
4uego #e instrucciones #e tipo 6!A(/,$!R& 9R&B-R&B0
3ni#a# #e ejecuci'n segmenta#a en tres etapas.
,egmentaci'n; se acaba una instrucci'n por ciclo 9Mejor caso0
$ama@o #e las instrucciones; *2 bits 9ARM0
Thumb; instrucciones #e 1C bots para tener programas compactos
Thumb2; en un mismo c'#igo y sin recon)iguraci'n se pue#en me/clar
instrucciones ARM y $%umb
Arquitectura 1AR<AR(
,altos con especulaci'n 9Aplicable a saltos con#icionales0
ARMv7-M
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es 7
D5or quE $%umb 2F
C'#igo ARM; to#as las instrucciones? con to#as las opciones y
to#os los mo#os #e #ireccionamiento
C'#igo $%umb; instrucciones #e 1C bits m.s GcompactasH.
!bjetivo; programas m.s cortos
5roblema; A! caben lo mismo que en *2 bits
$%umb2; combina los #os anteriores #e )orma que no sea
necesario poner instrucciones para pasar #e un mo#o a otro.
Ao es necesario que las instrucciones estEn alinea#as a palabra.
ARM
$%umb
$%umb2
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es 8
Registros accesible por las instrucciones
1C registros #e *2 bits... pero;
R1I JJK 5C
R1* JJK ,5
R1+ JJK 6R
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es
&jecuci'n segmenta#a
,egmentaci'n; 1 instrucci'n por ciclo salvo riesgos
R"&,B! JJ ,$A66 JJ per#i#a# #e prestaciones
Stall; signi)ica que %ay un ciclo en el que no po#emos ejecutar una
instrucci'n porque %ay otra que lo impi#e
Ca#a )abricante in#ica con una tabla las GlatenciasH #e las
instrucciones que pue#en generar GstallsH
Latencia; tiempo que se tar#a en que una instrucci'n acabe
Cortex-M; evita muc%os riesgos por 12
Ao to#os los riesgos se pue#en evitar
Riegos #e #atos y #e nombre; cortocircuitos L compila#or
Riesgos #e #e control; especulaci'n 9apostar quE va a ocurrir0
<&R; Cortex-M* $ec%nical Re)erencce Manual M 5rogrammers
Mo#el M "nstruction set summary
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es !"
Memoria
&spacio #e #ireccionamiento GplanoH con #irecciones #e *2 bits
M53 9opcional0; Memory 5rotection 3nit
5ermite #e)inir c'mo se acce#era la memoria 9%asta 8 /onas0
(ispositivos; mapea#os en memoria
Ao to#o el espacio #e #ireccionamiento se pue#e usar para RAM
Arquitectura 1AR<AR(; el procesa#or acce#e a memoria por #os
caminos #i)erentes? uno para #atos y otro para programa.
&A("AA; pue#e ser big o little
Nonas especiales para acceso e)iciente a bits; O"$ OAA(,
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es !!
Mapa #e Memoria
Cdigo o datos
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es !2
Mapa #e Memoria
(ispositivos;
(e 0x+000000 a 0xC0000000 #e)ini#os por el )abricante
(e 0xA000000 a 0x&0000000 #e)ini#os por el )abricante
(e 0x&000000 a 0x&00+0000 #e)ini#os por ARM
(e 0x&00+000 a 0x&0100000 #e)ini#os por ARM o el )abricante
(e 0x&010000 a 0x======== #e)ini#os por el )abricante
Memoria;
(e 0x0000000 a 0x20000000 2 v-as #e acceso 9(co#e y "co#e0
(e 0x2000000 a 0x+0000000 1 v-a #e acceso 9,ystem Ous0
(e 0xC000000 a 0xA0000000 1 v-a #e acceso 9,ystem Ous0
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es !3
Acceso al Oit Oan#
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es !4
Caminos #e interconexi'n
Cortex$M -M* core is #esigne# )or ,ystem on a C%ip
9,!C0 approac%es.
$%e ,ystem-6evel bus inter)aces )rom t%e Cortex$M -M*
core to microcontroller manu)acturer are base# on t%e
A1O an# A5O protocols.
A#vance# Microcontroller Ous Arc%itecture 9AMOA0 #escribes t%ese protocols.
A#vance# 1ig%-5er)ormance Ous 9A1O0
"nstruction bus 9"-co#e bus0; *2 bit
(ata bus 9(-co#e bus0; *2 bit
,ystem Ous; *2 bit
9"nternal0 A#vance# 5erip%eral Ous 9A5O0; *2 bit
&xternal 5rivate 5erip%eral Ous 9&xternal 55O0; *2 bit
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es !5
Caminos #e interconexi'n
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es !6
Caminos #e interconexi'n ,$M*2=+
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es !7
",A; $ipos b.sicos #e "nstrucci'n
AritmEtico-l'gicas
=uentes y #estino en registros o valores inme#iatos
Movimiento entre registros 9M!<0
=uentes y #estino en registros o valores inme#iatos
Acceso a memoria
,'lo con instrucciones 6!A( y ,$!R&
Control;
,alto 9O? O6? O:? O6:? O:4? CON? COAN? $OO? $O10
PC3"(A(!Q &l 5C es un registro a to#os los e)ectos
")-$%en y &jecuci'n con#icional
Mo#i)icar el esta#o #el procesa#or
%ttp;//in)ocenter.arm.com/%elp/topic/com.arm.#oc.qrc0001m/RRC0001S3A6.p#)
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es !8
Conceptos bsicos sobre el software
armcortexm.blogs.upv.es !
!peraciones AritmEtico/l'gicas
<alor inme#iato
Registro
5recompila#or;
$ipos b.sicos
&nteros;
Uunsigne#^signe#V int
Coma )lotante
5unteros
<ectores
Registros
C3"(A(!
(atos globales;
!LA;
C3"(A(!
i)9con#0UcuerpoSciertoV
i)9con#0UcuerpoSciertoVelseUcuerpoS)alsoV
)or9initacon#ainc0 U cuerpo V
X%ile9con#0UcuerpoV
#oUcuerpoVX%ile9con#0a
C!A,&4!;