Compartir a través de


Problemas de implementación para controladores de controlador GPIO

La extensión del marco gpIO (GpioClx) proporciona una interfaz de controlador de dispositivo flexible (DDI). Esta DDI permite a los desarrolladores elegir entre interfaces de devolución de llamada alternativas. Un desarrollador de controladores debe implementar el conjunto de funciones de devolución de llamada de eventos más adecuadas para la arquitectura de hardware del dispositivo de controlador GPIO de destino.

Por ejemplo, si el controlador del controlador GPIO admite la lectura y escritura en patillas de E/S de GPIO, el desarrollador puede optar por implementar uno de los siguientes pares de funciones de devolución de llamada:

CLIENT_ReadGpioPins y CLIENT_WriteGpioPinsCLIENT_ReadGpioPinsUsingMask y CLIENT_WriteGpioPinsUsingMask Las funciones CLIENT_ReadGpioPins y CLIENT_WriteGpioPins reciben un número bancario, una matriz de números de patillas GPIO y un búfer de datos para que los valores de bits se lean o escriban en estas patillas. Si solo se accede a un pequeño número de patillas GPIO en una operación de lectura o escritura, este par de devoluciones de llamada podría producir la mejor implementación. Esta implementación se usa normalmente para controladores GPIO cuyos registros de hardware no están asignados a memoria. Sin embargo, si es probable que se tenga acceso a varios patillas GPIO durante una operación de lectura o escritura, o si el hardware del controlador GPIO puede acceder eficazmente a varios patillas GPIO en paralelo, el otro par de funciones de devolución de llamada podría producir una mejor implementación.

Las funciones de devolución de llamada CLIENT_ReadGpioPinsUsingMask y CLIENT_WriteGpioPinsUsingMask pueden leer o escribir un banco de hasta 64 pines en una llamada. La función CLIENT_ReadGpioPinsUsingMask lee los valores de patillas GPIO en una máscara de 64 bits. La función CLIENT_WriteGpioPinsUsingMask usa dos máscaras de 64 bits. Una máscara indica qué patillas GPIO se van a establecer y la otra máscara indica qué patillas GPIO se van a borrar. Esta implementación se usa normalmente para los controladores GPIO asignados a memoria.