Lista de comprobación de requisitos del controlador GPIO
En este tema se resumen los requisitos de hardware, firmware y software para De uso general dispositivos de controlador de E/S (GPIO) que se exponen a Windows.
Requisitos de hardware del controlador GPIO
El controlador GPIO se integra en el SoC (no conectado por un bus SPB).
Aumenta la confiabilidad de ActiveBoth emulado.
Se admiten interrupciones en modo de nivel.
Se requiere para las características emuladas activeBoth y Debounce Emulation.
Se admiten las polaridades de interrupción alta y baja.
Se requiere para las características emuladas activeBoth y Debounce Emulation.
La polaridad de interrupción se puede volver a programar en tiempo de ejecución.
Se requiere para las características emuladas activeBoth y Debounce Emulation.
Requisitos de firmware del controlador GPIO
El controlador GPIO _CRS incluye todos los recursos para todos los bancos de patillas del controlador.
El controlador GPIO _CRS orden de recursos proporciona una asignación de interrupciones bancarias a sistema.
_AEI método y métodos de eventos (_Exx, _Lxx o _EVT) existen para cualquier evento ACPI señalado por GPIO.
Controlador GPIO _DSM incluido si alguna interrupción de ActiveBoth conectada al controlador es lógica alta en lugar de lógica baja.
Implemente _REG métodos para cada controlador GPIO y evite el uso de GeneralPurposeIO OpRegions si _REG indica que el controlador de región no está disponible.
El tiempo de espera de desbounce se incluye en el descriptor de recursos GPIOInt para cualquier interrupción que requiera la desaplicación.
Requisitos del controlador de GPIO
Compatibilidad con la versión 2 de la interfaz entre GpioClx y el controlador del controlador GPIO:
Implemente la función de devolución de llamada CLIENT_QueryEnabledInterrupts . Esto ayuda en gran medida a diagnosticar tormentas de interrupción.
Si la marca BankIdlePowerMgmtSupported está establecida en la estructura de CONTROLLER_BASIC_INFORMATION , el controlador gpIO debe implementar las funciones de devolución de llamada CLIENT_SaveBankHardwareContext y CLIENT_RestoreBankHardwareContext , y estas funciones deben guardar o restaurar el contexto bancario correctamente, incluido el estado enmascarado o sin máscara de las interrupciones. Tenga en cuenta que no se garantiza que las interrupciones se desconecten en el momento en que se llama a esta función, pero, si aún están conectadas, se garantiza que se enmascaran.
Si la marca DeviceIdlePowerMgmtSupported está establecida en la estructura de CONTROLLER_BASIC_INFORMATION , las funciones de devolución de llamada CLIENT_StartController y CLIENT_StopController deben guardar o restaurar contexto para todos los bancos correctamente, incluido el estado enmascarado o sin máscara de las interrupciones. Tenga en cuenta que no se garantiza que las interrupciones se desconecten en el momento en que se llama a esta función, pero, si aún están conectadas, se garantiza que se enmascaran.
Establezca la marca EmmulDebouncing en la estructura CONTROLLER_BASIC_INFORMATION . Esto aumenta significativamente la inmunidad de ruido para los dispositivos cuyas interrupciones están sujetas a descarga electrostática (como botones, enchufes, etc.).
Establezca la marca EmActiveBoth en la estructura CONTROLLER_BASIC_INFORMATION e implemente la función de devolución de llamada CLIENT_ReconfigureInterrupt . Esto garantiza una detección de borde confiable para las interrupciones de ActiveBoth.