PDF de programación - Módulo 2. Entrada/salida - Tema 2.2. Sistema de E/S del S3CEV40

Imágen de pdf Módulo 2. Entrada/salida - Tema 2.2. Sistema de E/S del S3CEV40

Módulo 2. Entrada/salida - Tema 2.2. Sistema de E/S del S3CEV40gráfica de visualizaciones

Publicado el 9 de Julio del 2019
372 visualizaciones desde el 9 de Julio del 2019
3,7 MB
91 paginas
Creado hace 2a (08/03/2018)
Módulo 2. Entrada/salida

Tema 2.2. Sistema de E/S del S3CEV40

ec

Indice

 Placa de prototipado S3CEV40
 Estructura del Sistema de E/S en la S3CEV40
 Mapa de memoria de los programas
 GPIO, Leds y Pulsadores
 Teclado
 Display 8 Segmentos
 Temporizadores
 Uart
 LCD
 Controlador DMA
 Bibliografïa:

• Manuales del S3C44B0X y de la placa S3CEV40

ec

Placa S3CEV40

ec

Dispositivos de la S3CEV40

 Pulsadores, Leds y display 8 segmentos
 Timers
 Uart
 Teclado matricial (En placa de expansión)
 LCD (En placa de expansión)
 Controladores I2C y SPI
 Ethernet
 USB
 Nand Flash
 …

ec

Alternativas similares de menor coste

 BeagleBone Black
– Chip AM3358/9

• Cortex-A8 + 2xPRU(200MHz) @1Ghz

 Raspberry Pi B

– Chip Broadcom BCM2835
• ARM 1176JZF-S @ 700 MHz

 Raspberry Pi 2

– Chip Broadcom BCM2836

• 900 MHz quad-core ARM Cortex A7

 Arduino Uno

– ATMega 328 @ 16 MHz

ec

Indice

 Placa de prototipado S3CEV40
 Estructura del Sistema de E/S en la S3CEV40
 Mapa de memoria de los programas
 GPIO, Leds y Pulsadores
 Teclado
 Display 8 Segmentos
 Temporizadores
 Uart
 LCD
 Controlador DMA

ec

Componentes del sistema de E/S

 De dentro hacia fuera:

– Procesador: ARM7TDMI (de ARM)
– Chip (SoC): S3C44B0X (de Samsung)
– Placa: S3CEV40 (de Embest)

ec

Indice

 Placa de prototipado S3CEV40
 Estructura del Sistema de E/S en la S3CEV40

– ARM7TDMI

 Mapa de memoria de los programas
 GPIO, Leds y Pulsadores
 Teclado
 Display 8 Segmentos
 Temporizadores
 Uart
 LCD
 Controlador DMA

ec

Sistema de E/S del ARM7TDMI

 E/S localizada en memoria

– los puertos de E/S forman parte del

espacio de direcciones

 Excepciones autovectorizadas

– Reset
– Errores en acceso a memoria (Data

Abort y Prefetch Abort)

– Instrucción no definida (UNDEF)
– 2 líneas de Int. Externas IRQ y FIQ
– Interrupción software (SWI)

 Identificación de dispositivos

mediante encuesta

ec

Prioridad

Excepción

Vector

1

2

3

4

5

6

7

Reset

Data Abort

FIQ

IRQ

Prefetch Abort

0x00

0x10

0x1C

0x18

0x0C

Instr. no definida

0x04

SWI

0x08

Prioridades de las excepciones
1. Reset
2. Data Abort
3. FIQ
4. IRQ
5. <usado en ARMv6>
6. Prefecth Abort
7. Undefined Inst / SWI

ec

Habilitación de Interrupciones

28
31
N Z C V
f

27

24

23

16

15

U n d e f i n e d

8

4

6

5
7
I F T

0

modo

s

x

c

 Dos líneas externas de interrupción FIQ y IRQ
 Enmascaradas mediante los bit F e I del

registro de estado (CPSR)
– F=1 FIQ deshabilitada/enmascarada
– I=1 IRQ deshabilitada/enmascarada

ec

Acceso al Registro de Estado

28

27
31
N Z C V Q

24
J

f

■ Sintaxis:

23

U n d e f i n e d

15


16

s

x

8

5 4

67
I F T mode

0

c

■ MRS{<cond>} Rd,<psr> ; Rd = <psr>
■ MSR{<cond>} <psr[_campos]>,Rm ; <psr[_campos]> = Rm

 Dónde: <psr> = CPSR o SPSR ; [_campos] = combinación de ‘fsxc’
■ Admiten operando inmediato:
■ MSR{<cond>} <psr_campos>, #Inmediato

■ En modo “user”, todos los bits se pueden leer, pero

sólo los flags de condición (_f) se pueden escribir

ec

Modos de ejecución

28
31
N Z C V
f

27

24

23

16

15

U n d e f i n e d

s

x

8

4

6

5
7
I F T

0

modo

c

 El ARM7TDMI tienen 7 modos de ejecución:

– User (usr): estado normal de ejecución
– FIQ : manejo de interrupciones rápidas para transferencias

de datos

lentas

– IRQ : manejo de interrupciones de propósito general o

– Supervisor (svc): modo protegido para el sistema operativo
– Abort (abt): usado para gestionar las fallos de acceso a

dato (prefetching o accesos convencionales)

– Undef (und): manejo de fallos por instrucción no definidas
– System : modo privilegiado para el sistema operativo,

usando los mismos registros que en el modo usuario

ec

Modos de ejecución y registros
 37 registros de 32-bits de longitud
– 1 contador de programa (dedicado)
– 1 registro de estado actual del programa

(dedicado)

– 5 registros para guardar el estado del

programa (dedicados)

– 30 registros de propósito general

 ¡No todos están disponibles

simultáneamente!

ec

Modos de ejecución y registros
 El modo en el que se encuentra el procesador determina

los registros accesibles

 En cada modo se puede acceder a:

– Un conjunto particular de registros generales (r0-r12)
– Registros de puntero de pila (r13) y enlace (r14) privados del

modo

– El contador de programa (r15)
– El registro de estado actual del programa (cpsr)

 En los modos privilegiados (excepto system) se puede

acceder también a:
– Un registro especial que almacena el estado del programa (spsr)

• se llama registro de sombra del registro de estado

ec

Modos de ejecución y registros

Current Visible Registers
Current Visible Registers
Current Visible Registers
Current Visible Registers
Current Visible Registers
Current Visible Registers

Registros Visibles

r0
r0
r0
r0
r0
r0
r0
r1
r1
r1
r1
r1
r1
r1
r2
r2
r2
r2
r2
r2
r2
r3
r3
r3
r3
r3
r3
r3
r4
r4
r4
r4
r4
r4
r4
r5
r5
r5
r5
r5
r5
r5
r6
r6
r6
r6
r6
r6
r6
r7
r7
r7
r7
r7
r7
r7
r8
r8
r8
r8
r8
r8
r8
r9
r9
r9
r9
r9
r9
r9
r10
r10
r10
r10
r10
r10
r10
r11
r11
r11
r11
r11
r11
r11
r12
r12
r12
r12
r12
r12
r12

r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r15 (pc)
r15 (pc)
r15 (pc)
r15 (pc)
r15 (pc)
r15 (pc)
r15 (pc)

cpsr
cpsr
cpsr
cpsr
cpsr
cpsr
cpsr
spsr
spsr
spsr
spsr
spsr

Abort Mode
Undef Mode
SVC Mode
User Mode
FIQ Mode
IRQ Mode

ec

Registros No-Visibles
Banked out Registers
Banked out Registers
Banked out Registers
Banked out Registers
Banked out Registers
Banked out Registers

User
User
User
User
User

FIQ
FIQ
FIQ
FIQ
FIQ
FIQ

IRQ
IRQ
IRQ
IRQ
IRQ
IRQ

SVC
SVC
SVC
SVC
SVC
SVC

Undef
Undef
Undef
Undef
Undef
Undef

Abort
Abort
Abort
Abort
Abort
Abort

r8
r9
r10
r11
r12

r8
r8
r8
r8
r8
r8
r9
r9
r9
r9
r9
r9
r10
r10
r10
r10
r10
r10
r11
r11
r11
r11
r11
r11
r12
r12
r12
r12
r12
r12

r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)

r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)

r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)

r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)

r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)

r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r13 (sp)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)
r14 (lr)

spsr
spsr
spsr
spsr
spsr
spsr

spsr
spsr
spsr
spsr
spsr
spsr

spsr
spsr
spsr
spsr
spsr
spsr

spsr
spsr
spsr
spsr
spsr
spsr

spsr
spsr
spsr
spsr
spsr
spsr

Modos de ejecución y registros

User

r0
r1
r2
r3
r4
r5
r6
r7
r8
r9
r10
r11
r12

r13 (sp)
r14 (lr)
r15 (pc)

cpsr

IRQ

SVC

Undef

Abort

User
mode
r0-r12,
r15,
and
cpsr

User
mode
r0-r12,
r15,
and
cpsr

User
mode
r0-r12,
r15,
and
cpsr

User
mode
r0-r12,
r15,
and
cpsr

FIQ

User
mode
r0-r7,
r15,
and
cpsr

r8
r9
r10
r11
r12

r13 (sp)
r14 (lr)

r13 (sp)
r14 (lr)

r13 (sp)
r14 (lr)

r13 (sp)
r14 (lr)

r13 (sp)
r14 (lr)

spsr

spsr

spsr

spsr

spsr

ec

Gestión de excepciones

 Cuando se produce una excepción:
– Se copia el CPSR en SPSR_<modo>
– Se modifican los bits adecuados del CPSR

• Cambio a estado ARM
• Cambio al modo de excepción
• Deshabilitar interrupciones (si procede)
– Se guarda la dirección de retorno en

LR_<modo>

– Se actualiza el PC con el vector

correspondiente

ec

Retorno de Excepción

 La rutina de tratamiento de excepción tiene que:

– Restaurar el CPSR a partir del SPSR_<modo>
– Restaurar el PC a partir del LR_<modo>

• No es exactamente el valor almacenado en LR_<modo>, sino

que se calcula a partir de él (ver tabla)

• Habitualmente se emplean las instrucciones MOVS PC, LR o

SUBS PC, LR, #4 dependiendo del tipo de excepción
– también puede usarse LDM

ec

Indice

 Placa de prototipado S3CEV40
 Estructura del Sistema de E/S en la S3CEV40

– S3C44BOX

 Mapa de memoria de los programas
 GPIO, Leds y Pulsadores
 Teclado
 Display 8 Segmentos
 Temporizadores
 Uart
 LCD
 Controlador DMA

ec

Espacio de direcciones del S3C44B0X

 Gestionado por el controlador de

memoria interno

 Dividido en 8 fragmentos (bancos) de

32MB

 Los bits 28-24 de a la dirección

determinan el banco
– El controlador activa las señales (nGCS0-7)
 El comportamiento de cada

banco es
configurable

 Es necesario configurar los bancos

antes de poder usarlos
– El banco 0 tiene una configuración de

reset válida para la ROM FLASH de la placa

ec

Registros de los

controladores internos

Sistema de E/S del S3C44B0X

ec

Controlador de Interrupciones

 Amplía el nº de líneas de petición

de interrupción del ARM7TDMI
– 30 posibles fuentes de interrupción
usando 26 líneas (algunas fuentes
comparten línea)

 Añade soporte de interrupciones

vectorizadas
– ¡Solo para aquellas fuentes que

usan IRQ!

 Implementado mediante 5

controladores encadenados (1
master + 4 slaves)

 Prioridades en int. Vectorizadas

– Orden (fijo/programable)

ec

Registros de configuración

 INTCON (Interrupt Control Register), 3 bits

– V (bit [2]) = 0, habilita las interrupciones vectorizadas
– I (bit [1]) = 0, habilita la línea IRQ
– F (bit [1]) = 0, habilita la línea FIQ

 INTMOD (Interrupt Mode Register), 1 bit por línea

– 0 = modo IRQ; 1 = modo FIQ

 INTPND (Interrupt Pending Register), 1 bit por línea

– 0 = no hay solicitud; 1 = hay una solicitud

 INTMSK (Interrupt Mask Register), 1 bit por línea

– 0 = int. disponible; 1 = int. enmascarada

 I_ISPC (IRQ Int. Service Pending Clear register), 1 bit por línea

– Al escribir un 1 se borra el bit correspondiente del INTPND e indica al controlador el

final de la rutina de servicio (!FIN RUTINA SERVICIO!)

 F_ISPC (FIQ Int. Service pending Clear register), 1 bit po
  • Links de descarga
http://lwp-l.com/pdf16246

Comentarios de: Módulo 2. Entrada/salida - Tema 2.2. Sistema de E/S del S3CEV40 (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