Herramientas de usuario

Herramientas del sitio


arm_interrupciones

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
arm_interrupciones [2020/05/27 20:32] – [SWI] andrewarm_interrupciones [2020/05/27 21:01] (actual) – editor externo 127.0.0.1
Línea 19: Línea 19:
 {{ :vector_table.jpg?400 |}} {{ :vector_table.jpg?400 |}}
  
-En la arquitectura ARMv6 todos los vectores de interrupción se almacenan en una zona de memoria llamada tabla de vectores de interrupción. Esta tabla comienza en la dirección física 0x00000000 (aunque puede cambiarse por 0xffff0000) y acaba en 0x0000001f y contiene en total 8 vectores de interrupción. Cuando termina de ejecutarse una RTI, el procesador continúa ejecutando la instrucción siguiente a la que se estaba ejecutando cuando se produjo la interrupción.+En la arquitectura ARMv6 todos los vectores de interrupción se almacenan en una zona de memoria llamada tabla de vectores de interrupción. Esta tabla comienza en la dirección física 0x00000000 (aunque puede cambiarse por 0xffff0000) y acaba en 0x0000001f y contiene en total 8 vectores de interrupción. Cuando termina de ejecutarse una RTI, el procesador continúa ejecutando la instrucción siguiente a la que se estaba ejecutando cuando se produjo la interrupción. El siguiente grafico muestra un ejemplo con la interrupcion SWI, que se verá en detalle mas adelante. 
 + 
 +{{ :ejemploswi.png?400 |}} 
 + 
  
 La lista del vector de interrupciones es la siguiente. La lista del vector de interrupciones es la siguiente.
Línea 75: Línea 79:
 Ejemplo 2 : Escribir en pantalla un mensaje. Ejemplo 2 : Escribir en pantalla un mensaje.
  
-.data +     .data 
- mensaje: +     mensaje: 
- .ascii "Ingresar texto 4 caracteres!:\n" +             .ascii "Ingresar texto 4 caracteres!:\n" 
-.text +     .text 
-.global main +     .global main 
-main: +     main: 
- mov r7, #4      // Indicamos salida por pantalla +             mov r7, #4       // Indicamos salida por pantalla 
-        mov r0, #1      // Indicamos salida cadena +             mov r0, #1       // Indicamos que la salida es una cadena 
-        mov r2, #30     // Tamaño de la cadena +             mov r2, #30      // Tamaño de la cadena 
-        ldr r1, =mensaje // +             ldr r1, =mensaje // Ubicación de la cadena 
-        swi 0           // Llamamos a la interrupción+             swi 0            // Llamamos a la interrupción
  
  
 Ejemplo 3 : Leer input del usuario. Ejemplo 3 : Leer input del usuario.
 +
 +     .data
 +     cadena:
 +             .ascii " "
 +     .text
 +     .global main
 +     main:
 +             mov r7, #3       // Indicamos lectura por teclado
 +             mov r0, #0       // Indicamos que el ingreso será una cadena
 +             mov r2, #4       // Leer #4 caracteres
 +             ldr r1, =cadena  // Donde se guarda la cadena ingresada
 +              swi 0       // Llamamos a la interrupción
 +
  
  
× iphelper toolbox

you see this when javscript or css is not working correct

Untested
IP Address:
First usable:
Subnet:
Last usable:
CIDR:
Amount of usable:
Network address:
Reverse address:
Broadcast address:

arm_interrupciones.1590611559.txt.gz · Última modificación: 2020/05/27 20:32 (editor externo)