NVIC en CPU ARM

3

¿Podemos ver el periférico NVIC en las CPU ARM como una especie de hilo? ¿La aplicación principal se está ejecutando y al mismo tiempo el periférico NVIC está haciendo su propio trabajo? O todo eso es una aplicación de un solo hilo. ¿Alguien puede explicar si estoy equivocado, dónde y por qué?

    
pregunta

2 respuestas

1

Vine de un fondo de Java a la programación incorporada, así que me hice la misma pregunta. En Java, tienes hilos. Con ellos puedes ejecutar algunas tareas dadas de una forma (tipo) paralela. NO es así como funcionan las interrupciones.

El código en una rutina de interrupción no se ejecuta mientras se ejecuta el bucle principal. El bucle principal detiene lo que está haciendo y salta a la rutina de interrupción en caso de que se dispare una interrupción. Después de la ejecución del isr, vuelve a donde estaba y continúa con eso.

    
respondido por el jwsc
1

Hasta cierto punto, pero hay momentos en que es fundamental no pensar en el NVIC de esta manera.

Primero, debes preocuparte por lo que estás haciendo con la pila. IIRC, el modelo Cortex se encarga del mantenimiento de la pila y la restauración del registro, pero si está haciendo algo tonto (o incluso no tan tonto), puede provocar desbordamientos de pila.

Siguiente - las interrupciones son INTERRUPTOS. Si está realizando operaciones no atómicas, y la interrupción ocurre en el medio, las cosas pueden complicarse bastante rápidamente, y puede ser un desafío depurar este tipo de problemas.

    
respondido por el Scott Seidman

Lea otras preguntas en las etiquetas