Lessico IT › Hardware › Routine di servizio dell'interrupt (ISR)

Routine di servizio dell'interrupt (ISR)

Hardware Svenska → Aggiornato: 2026-11-03

La funzione a cui il processore salta quando scatta un interrupt: codice che gira a tempo preso in prestito, nel bel mezzo di qualcos'altro.

Il suo indirizzo proviene dalla tabella dei vettori di interrupt. Su Cortex-M un'ISR è una normale funzione C, perché l'hardware salva da sé nello stack i registri del chiamante in un exception frame; le architetture più vecchie richiedevano un prologo in assembly o una parola chiave specifica del compilatore come __interrupt.

Le regole di base sono universali: essere brevi, non bloccarsi mai, azzerare il flag di interrupt prima di tornare (altrimenti scatta di nuovo subito) e condividere i dati con il programma principale tramite variabili volatile o una sezione critica. Il lavoro pesante si delega a un task: vedi la gestione differita degli interrupt. FreeRTOS ha chiamate …FromISR() separate proprio perché l'API normale potrebbe tentare di mettersi in attesa, cosa che un'ISR non deve mai fare.

← Torna al lessico