Estoy trabajando en un sistema que usa aproximadamente 4 interrupciones. Puedo definir claramente una prioridad de uno a otro. Por ejemplo, alimento transferencias SPI con solicitudes DMA y opero una interfaz USB que controla los datos SPI. Con este fin, he priorizado mis interrupciones de la siguiente manera (ordenadas de prioridad más alta a más baja)
- Systick
- EXTI para señales de handshaking
- transmisiones DMA
- USB
Todo funciona bien por un tiempo y luego empiezo a ver algunos comportamientos extraños que aún no he podido determinar la causa, pero me pregunto / sospecho si es porque estoy permitiendo que las interrupciones se anticipen a otras. Tiempos inoportunos.
Entonces, mi pregunta es, qué tipo de problemas se deben considerar al decidir si una interrupción debe adelantarse a otra, o si solo se le debe dar una prioridad suficientemente alta a la cadena de la cola.