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_interrupt_controllers [2024/06/03 01:28] – Incorporacion de direcciones para modelo Zynq7000 cnigriarm_interrupt_controllers [2026/06/12 23:29] (actual) cnigri
Línea 40: Línea 40:
  
 ==== CPU Interface ==== ==== CPU Interface ====
-Existe una instancia por núcleo de CPU disponible e interconecta la interfaz provista por el Distributor con el núcleo correspondiente. Cada interfase permite: +Existe una instancia por núcleo de CPU disponible e interconecta la interfaz provista por el Distributor con el núcleo correspondiente. Cada interfaz permite: 
-  * Ítem de lista desordenadaÍtem de lista desordenadaDes/habilitar la señal de IRQ al procesador+  * Des/habilitar la señal de IRQ al procesador
   * Dar acuse de recibo de la interrupción   * Dar acuse de recibo de la interrupción
   * Indicar que el procesamiento de la interrupción se ha finalizado   * Indicar que el procesamiento de la interrupción se ha finalizado
Línea 57: Línea 57:
  
 El valor especifico de la dirección base se brinda en la documentación especifica de cada fabricante ([[https://developer.arm.com/documentation/dui0417/d/programmer-s-reference/generic-interrupt-controller--gic/generic-interrupt-controller-registers|PB-A8]], [[https://docs.amd.com/r/en-US/ug585-zynq-7000-SoC-TRM/CPU-Private-Bus-Registers|Zynq-7000]]) El valor especifico de la dirección base se brinda en la documentación especifica de cada fabricante ([[https://developer.arm.com/documentation/dui0417/d/programmer-s-reference/generic-interrupt-controller--gic/generic-interrupt-controller-registers|PB-A8]], [[https://docs.amd.com/r/en-US/ug585-zynq-7000-SoC-TRM/CPU-Private-Bus-Registers|Zynq-7000]])
-<code c>+<code java>
 #include <stddef.h> #include <stddef.h>
 /*GIC Register Definitions*/ /*GIC Register Definitions*/
Línea 68: Línea 68:
 #endif #endif
  
-#define ICCICR      *((uint32_t *) GIC0_CPU_BASE + 0x000)         //CPU Interface Control Register+#define ICCICR      *((uint32_t *) GIC0_CPU_BASE + 0x00)         //CPU Interface Control Register 
 +#define ICCPMR      *((uint32_t *) GIC0_CPU_BASE + 0x04)         //Interrupt Priority Mask Register 
 +#define ICCBPR      *((uint32_t *) GIC0_CPU_BASE + 0x08)         //Binary Point Register 
 +#define ICCIAR      *((uint32_t *) GIC0_CPU_BASE + 0x0C)         //Interrupt Acknowledge 
 +#define ICCEOIR     *((uint32_t *) GIC0_CPU_BASE + 0x10)         //End of Interrupt Register
 #define ICDDCR      *((uint32_t *) GIC0_DISTRIBUTOR_BASE + 0x000)       //Distributor Control Register #define ICDDCR      *((uint32_t *) GIC0_DISTRIBUTOR_BASE + 0x000)       //Distributor Control Register
 #define ICDICTR     *((uint32_t *) GIC0_DISTRIBUTOR_BASE + 0x004)       //Interrupt Controller Type Register #define ICDICTR     *((uint32_t *) GIC0_DISTRIBUTOR_BASE + 0x004)       //Interrupt Controller Type Register
Línea 147: Línea 151:
  
 ===== Caso de uso PB-A8 ===== ===== Caso de uso PB-A8 =====
-A los fines de la placa empleada, para la resolución de la guía de trabajos prácticos del primer cuatrimestre, el [[https://developer.arm.com/documentation/dui0417/d/programmer-s-reference/generic-interrupt-controller--gic?lang=en | GIC a configurar para el uso de IRQ es el 0]] el cual tiene asociado el [[https://developer.arm.com/documentation/dui0417/d/programmer-s-reference/generic-interrupt-controller--gic/interrupt-signals?lang=en | ID#36 para el Timer0]]+A los fines de la placa empleada, para la resolución de la guía de trabajos prácticos del primer cuatrimestre, el [[https://developer.arm.com/documentation/dui0417/d/programmer-s-reference/generic-interrupt-controller--gic?lang=en | GIC a configurar para el uso de IRQ es el 0]] el cual tiene asociado el [[https://developer.arm.com/documentation/dui0417/d/programmer-s-reference/generic-interrupt-controller--gic/interrupt-signals?lang=en | ID#36 para el Timer0]]. Es importante mencionar que esta placa cuenta con [[https://developer.arm.com/documentation/dui0417/d/hardware-description/interrupts?lang=en | GIC dedicados segun la fuente de interrupción FIQ o IRQ.]]
  
 En forma complementaría al código, en C, presentado anteriormente para la configuración del GIC, a continuación se brinda a modo de referencia básica el equivalente en ensamblador En forma complementaría al código, en C, presentado anteriormente para la configuración del GIC, a continuación se brinda a modo de referencia básica el equivalente en ensamblador
Línea 222: Línea 226:
 {{ :td3:nueva_seccion.jpg?400 |}} {{ :td3:nueva_seccion.jpg?400 |}}
  
- --- //[[cnigri@frba.utn.edu.ar|ChristiaN]] 2023/06/22 20:29//+ --- //[[cnigri@frba.utn.edu.ar|ChristiaN]] 2026/06/12 20:29//