avr / interrupt.h es realmente bastante simple en lo que respecta a los encabezados de interrupción . Mirando a través de él, no veo nada que no necesite mantener para que funcionen las interrupciones. Hay muy poca pelusa extraña. Sería útil tomarse el tiempo para llegar a donde interrupt.h es comprensible antes de que intente escribir su propio reemplazo. Diría que si miras las macros definidas que necesitas (es decir, no mires a ISR_ALIAS
a menos que necesites un alias ISR). De las partes que está mirando, yo diría que el 90-100% es esencial para manejar las interrupciones. Lo único que podría ser opcional es que puedes evitar el uso de macros variadic y __VA_ARGS__
si estás dispuesto a reescribir ese código cada vez en lugar de usar una macro.
Las interrupciones dependen mucho del compilador y dependen mucho del procesador. Puede buscar en el manual el procesador para encontrar exactamente en qué partes de la memoria escribir para habilitar las interrupciones, y luego puede hacer que su controlador haga eso. Sin embargo, tendrá que usar todos los indicadores que interrupt.h pone en sus funciones para asegurarse de que sean compatibles con la llamada como una interrupción (o escriba su propio controlador de interrupciones en el ensamblaje).