Le gestionnaire d'interruption également appelé ISR fait partie du pilote de périphérique dans le système d'exploitation. Dans OS, chaque numéro irq représente une ligne d'interruption du contrôleur d'interruption.
Les unités sont connectées en dur au contrôleur d'interruption et le contrôleur d'interruption signale la CPU correspondante si des interruptions sont générées dans les dispositifs. Les CPU cibles d'interruption sont programmables dans le contrôleur d'interruption pour chaque ligne d'interruption.
Pour partager des numéros d'interruption dans le matériel, comme GPIO dans ARM, le contrôleur d'interruption ou le périphérique doit fournir un registre supplémentaire pour le numéro d'interruption réelle. De plus, l'ISR devrait consulter ce registre pour le véritable numéro d'IRQ.
Je suis intéressé par votre question, mais je dois vous avertir: vous êtes un peu vague sur "comment le matériel/pilote déclenche une interruption". En termes simples, le HW exécute le code à un vecteur d'interruption donné. C'est comme ça que c'est fait. Je suppose que vous voulez quelque chose de plus spécifique. –
Je veux dire que chaque fois que le matériel périphérique a besoin de l'attention du processeur, il déclenche une interruption, n'est-ce pas? L'UC exécute le gestionnaire d'interruption pour cette interruption. Maintenant, ma question comment le matériel soulève une interruption (En exécutant une instruction ou ...) –