¿Cómo configurar el controlador de IRQ SAM3x8e para USART?

0

Estoy haciendo soporte UART para la placa Arduino Due basada en SAM3x8e. Me gustaría aclarar las preguntas que no puedo resolver buscando en la web.

  1. ¿Es solo un controlador de IRQ por componente de MCU como USART? Esto significa que debo usar el registro de componente status para averiguar qué evento ocurrió exactamente?

  2. ¿Es suficiente definir una función con un nombre predefinido como

void USART0_Handler(void) {}

para el componente USART0 y USART1_Handler para USART1 y etc.?

  1. El MCU tiene dispositivos (componentes) UART, USART0, USART1, USART2, USART3 a bordo. Miré en el código fuente de arduino, exactamente
arduino-1.5.7/hardware/arduino/sam/variants/arduino_due_x/variant.cpp

y vea que para serial0 se usa el componente UART, para serial1 se usa USART0, para serial2 - USART1 y para serail3 - USART3. El USART2 ni siquiera se menciona. La pregunta ¿por qué se hace esto de esa manera? ¿Qué significa UART, USART0, USART1, USART2, USART3? Me gustaría saber qué nombres debo usar para comunicarme correctamente a través de los pines de la placa como TX0 / RX0, TX1 / RX1 y etc.

Gracias de antemano.

    
pregunta 4xy

1 respuesta

1

En general, solo hay un controlador de interrupciones por componente, así que sí, tendrá que verificar el registro de estado para ver qué sucedió. En cuanto a la configuración de un controlador de interrupciones, el chip tiene un registro que debe apuntar a la tabla de interrupciones en algún lugar. No estoy seguro de cómo se configuraría con sus bibliotecas; podría ser atendido en el enlazador o podría haber una biblioteca para administrar la tabla.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas