PDF de programación - Introducción a la arquitectura de computadores con QtARMSim y Arduino

Imágen de pdf Introducción a la arquitectura de computadores con QtARMSim y Arduino

Introducción a la arquitectura de computadores con QtARMSim y Arduinográfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 16 de Febrero del 2018)
3.218 visualizaciones desde el 16 de Febrero del 2018
6,3 MB
378 paginas
Creado hace 6a (17/07/2017)
Introducción a la arquitectura de
computadores con QtARMSim y

Arduino

Sergio Barrachina Mir

Germán Fabregat Llueca

Germán León Navarro
Rafael Mayo Gual

Maribel Castillo Catalán

Juan Carlos Fernández Fernández

José Vicente Martí Avilés
Raúl Montoliu Colás

Copyright c(cid:13) 2017 Sergio Barrachina Mir, Maribel Castillo Catalán,
Germán Fabregat Llueca, Juan Carlos Fernández Fernández, Germán
León Navarro, José Vicente Martí Avilés, Rafael Mayo Gual y Raúl
Montoliu Colás.

Esta obra se publica bajo la licencia «Creative Commons Atribución-
CompartirIgual 4.0 Internacional». Puede consultar las condiciones de
dicha licencia en: http://creativecommons.org/licenses/by-sa/4.0/.

A Laia, ¡bienvenida!

Índice general

Índice general

Prefacio

I

Introducción

i

v

1

1 Introducción a la Arquitectura de Computadores

3
1.1. Componentes de un ordenador
. . . . . . . . . . . . . . .
4
1.2. El procesador, el núcleo del ordenador . . . . . . . . . . .
6
1.3.
Introducción a los buses . . . . . . . . . . . . . . . . . . . 28
1.4. La memoria . . . . . . . . . . . . . . . . . . . . . . . . . . 29

II Arquitectura ARM con QtARMSim

35

2 Primeros pasos con ARM y QtARMSim

37
2.1.
Introducción al ensamblador Thumb de ARM . . . . . . . 39
2.2.
Introducción al simulador QtARMSim . . . . . . . . . . . 45
2.3. Literales y constantes en el ensamblador de ARM . . . . . 58
2.4.
Inicialización de datos y reserva de espacio . . . . . . . . . 62
2.5. Firmware incluido en ARMSim . . . . . . . . . . . . . . . 68
. . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.6. Ejercicios

3 Instrucciones de transformación de datos

75
. . . . . . . . . . . . . . . 76
3.1. Los números en el computador
3.2. Banco de registros de ARM . . . . . . . . . . . . . . . . . 80
3.3. Operaciones aritméticas . . . . . . . . . . . . . . . . . . . 82
3.4. Operaciones lógicas . . . . . . . . . . . . . . . . . . . . . . 88
3.5. Operaciones de desplazamiento . . . . . . . . . . . . . . . 90
3.6. Modos de direccionamiento y formatos de instrucción de

ARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
. . . . . . . . . . . . . . . . . . . . . . . . . . . 97

3.7. Ejercicios

4 Instrucciones de transferencia de datos

103

i

ii

Índice general

Instrucciones de carga . . . . . . . . . . . . . . . . . . . . 104
Instrucciones de almacenamiento . . . . . . . . . . . . . . 111

4.1.
4.2.
4.3. Modos de direccionamiento y formatos de instrucción de

ARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
. . . . . . . . . . . . . . . . . . . . . . . . . . . 123

4.4. Ejercicios

5 Instrucciones de control de flujo

127
. . . . . . . . . . . 129
5.1. Saltos incondicionales y condicionales
5.2. Estructuras de control condicionales
. . . . . . . . . . . . 132
5.3. Estructuras de control repetitivas . . . . . . . . . . . . . . 135
5.4. Modos de direccionamiento y formatos de instrucción de

ARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
. . . . . . . . . . . . . . . . . . . . . . . . . . . 143

5.5. Ejercicios

6 Introducción a la gestión de subrutinas

147
6.1. Llamada y retorno de una subrutina . . . . . . . . . . . . 150
6.2. Paso de parámetros . . . . . . . . . . . . . . . . . . . . . . 154
. . . . . . . . . . . . . . . . . . . . . . . . . . . 161
6.3. Ejercicios

7 Gestión de subrutinas

163
7.1. La pila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
7.2. Bloque de activación de una subrutina . . . . . . . . . . . 169
7.3. Ejercicios
. . . . . . . . . . . . . . . . . . . . . . . . . . . 180

IIIEntrada/salida con Arduino

183

8 Introducción a la entrada/salida

185
8.1. Generalidades y problemática de la entrada/salida . . . . 186
8.2. Estructura de los sistemas y dispositivos de entrada/salida191
8.3. Ejercicios
. . . . . . . . . . . . . . . . . . . . . . . . . . . 197

9 Dispositivos de entrada/salida y el entorno Arduino

199
9.1. Entrada/salida de propósito general (GPIO) . . . . . . . . 200
9.2. Gestión del tiempo . . . . . . . . . . . . . . . . . . . . . . 210
9.3. El entorno Arduino . . . . . . . . . . . . . . . . . . . . . . 214
. . . . . . . . . . . . . . . . . . . . . . . . . . . 228
9.4. Ejercicios

10 Gestión de la entrada/salida y otros aspectos avanzados233
10.1. Gestión de la entrada/salida . . . . . . . . . . . . . . . . . 234
10.2. Transferencia de datos por programa y mediante acceso

directo a memoria . . . . . . . . . . . . . . . . . . . . . . 249

10.3. Estandarización y extensión de la entrada/salida: buses y

controladores . . . . . . . . . . . . . . . . . . . . . . . . . 254
10.4. Microcontroladores y conversión digital/analógica . . . . . 258

Índice general

iii

10.5. Ejercicios

. . . . . . . . . . . . . . . . . . . . . . . . . . . 260

A Información técnica y guía de uso de la tarjeta de E/S

y del microcontrolador ATSAM3X8E
267
A.1. La tarjeta de E/S . . . . . . . . . . . . . . . . . . . . . . . 268
A.2. Controladores PIO en el ATSAM3X8E . . . . . . . . . . . 269
A.3. El temporizador del sistema del ATSAM3X8E . . . . . . . 283
A.4. El reloj en tiempo real del ATSAM3X8E . . . . . . . . . . 285
A.5. El temporizador en tiempo real del ATSAM3X8E . . . . . 299
A.6. Gestión de excepciones e interrupciones
. . . . . . . . . . 300
A.7. El controlador de DMA del ATSAM3X8E . . . . . . . . . 308

B Breve guía de programación en ensamblador

309
B.1. Variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . 309
B.2. Estructuras de programación . . . . . . . . . . . . . . . . 315
B.3. Estructuras iterativas
. . . . . . . . . . . . . . . . . . . . 321

C Firmware incluido en ARMSim

327
C.1. Funciones aritméticas
. . . . . . . . . . . . . . . . . . . . 328
C.2. Funciones del LCD . . . . . . . . . . . . . . . . . . . . . . 328
C.3. Código fuente del firmware de ARMSim . . . . . . . . . . 331

D Sistemas de numeración

339
D.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . 340
D.2. El sistema binario . . . . . . . . . . . . . . . . . . . . . . 341
D.3. El hexadecimal como expresión más cómoda del binario . 342
. . . . . . . . . . . . . . 344
D.4. Cambiando entre distintas bases
D.5. El signo de los números binarios
. . . . . . . . . . . . . . 346

E Guía rápida del ensamblador Thumb de ARM

Índice de figuras

Índice de cuadros

Índice alfabético

Bibliografía

351

355

359

361

365

Prefacio

Los cursos de Arquitectura de Computadores se han visto obligados
históricamente a seguir el frenético ritmo marcado inicialmente por los
avances tecnológicos y arquitectónicos en el diseño de grandes compu-
tadores, y, posteriormente, a partir de los 80, por la evolución en el
diseño de microprocesadores. De hecho, se puede decir que la docen-
cia en Arquitectura de Computadores ha pasado por seis grandes eras:
mainframes, minicomputadores, primeros microprocesadores, micropro-
cesadores, RISC y post RISC [11].

Por otro lado, conforme las universidades han podido acceder a hard-
ware específico a un coste razonable, éste ha pasado a utilizarse amplia-
mente como material de referencia. En concreto, los computadores, pro-
cesadores o arquitecturas que han disfrutado de una mayor popularidad
en la docencia de Arquitectura de Computadores han sido: el compu-
tador PDP-11, el procesador 68000 de Motorola, el procesador 80x86 de
Intel, la arquitectura MIPS y el procesador SPARC. Aunque en ocasio-
nes también se ha recurrido a computadores hipotéticos dedicados en
exclusiva a la enseñanza de los conceptos arquitectónicos.

En la Universitat Jaume I también habíamos optado por algunas
de las alternativas ya comentadas. Comenzamos con el 68000 de Moto-
rola, más adelante utilizamos brevemente un computador hipotético y
posteriormente, cambiamos a la arquitectura MIPS, que se utilizó como
arquitectura de referencia hasta el curso 2013/14.

A principios de 2013, los profesores de la unidad docente de arquitec-
tura de computadores nos plantemos migrar la arquitectura de referen-
cia a ARM por los siguientes motivos. En primer lugar, la arquitectura
ARM, al estar basada en RISC, es relativamente sencilla. En segundo
lugar, pese a su sencillez, presenta muchas características que la distin-
guen de otras arquitecturas contemporáneas [10]. Por último, pero no
menos importante, el hecho de que ARM sea una arquitectura actual y
ampliamente difundida, especialmente en dispositivos móviles, teléfonos
inteligentes y tabletas, es un factor especialmente motivador [12]. Cabe
destacar que la popularidad de la arquitectura ARM ha explotado en
las dos últimas décadas debido a su eficiencia y a la riqueza de su eco-
sistema: se han fabricado más de 50 mil millones de procesadores ARM;

v

vi

Índice general

más del 75 % de la población mundial utiliza productos con procesadores
ARM [14].

Una vez tomada la decisión de realizar dicho cambio, comenzamos a
replantearnos las guías docentes y los materiales que se deberían utilizar
en la enseñanza tanto teórica como práctica de las distintas asignaturas
relacionadas con la materia de Arquitectura de Computadores.

En el caso de la asignatura Estructura de Computadores, de primer
curso, primer semestre, partíamos del siguiente material: el libro Estruc-
tura y diseño de computadores: la interfaz software/hardware, de David
A. Patterson y Jonh L. Hennessy [17], como referencia para la parte teó-
rica de la asignatura; el libro Prácticas de introducción a la arquitectura
de computadores con el simulador SPIM, de Sergio Barrachina, Maribel
Castillo, José Manuel Claver y Juan Carlos Fernández [5], como libro de
prácticas; y el simulador de MIPS xspim (actualmente QtSpim1), como
material de laboratorio.

En un primer momento nos planteamos utilizar como documentación
para la parte de teoría el libro Computer Organization and Architecture:
Themes and Variations. International Edition., de Alan Clements, y
para la parte de prácticas, el libro de prácticas indicado anteriormente
pero adaptado a un simulador de ARM que fuera lo suficientemente
senc
  • Links de descarga
http://lwp-l.com/pdf8834

Comentarios de: Introducción a la arquitectura de computadores con QtARMSim y Arduino (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad