2016-11-29 5 views

Antwort

1

IRQ ist eine Möglichkeit für die SDIO-Karte, die Aufmerksamkeit des Hosts zu erregen, indem sie einen Interrupt auf dem Host anfordert - dies führt normalerweise dazu, dass Code auf dem Host ausgeführt wird, vermutlich im Host-SDIO-Kartentreiber.

Durch die Verwendung von Interrupts muss der Host den Status der SDIO-Karte, die auf eine bestimmte Bedingung wartet, nicht fortlaufend überprüfen. Stattdessen wird die SDIO-Karte einen IRQ auslösen, wenn dieser Zustand eintritt.

Normalerweise bietet die SDIO-Karte eine Möglichkeit zum Aktivieren/Deaktivieren von Interrupt-Anforderungen, wahrscheinlich in einem der SDIO-Kartenregister. Sobald der Host den Interrupt bearbeitet hat, wird er über eine Funktion mit eindeutiger I/O-Operation vom Host zur SDIO-Karte gelöscht.

Die spezifische Bedeutung einer bestimmten Interrupt-Anforderung hängt vollständig von der jeweiligen Karte und dem Treiber ab. Wenn die SDIO-Karte jedoch Signale von einem externen Gerät empfängt, kann der IRQ signalisieren, dass Daten verfügbar sind. Oder wenn die SDIO-Karte Daten ausgibt, die z. B. vom Host zu je 16 Bytes geladen werden, kann der IRQ anzeigen, dass die SDIO-Karte weitere 16 Bytes akzeptieren kann.

In der Host-Interrupt-Serviceroutine überprüft der Host normalerweise den Status der Karte, um den Grund für den Interrupt zu ermitteln, und verzweigt dann zu einem bestimmten Code.

Keine davon ist spezifisch für SDIO - die gleichen Prinzipien der Verwendung von Interrupts gelten vollständig für jede Situation, in der I/O-Operationen asynchron von dem, was auch immer der Host tut, auftreten müssen.