GPIO 控制器驅動程式的實作問題
GPIO 架構延伸模組 (GpioClx) 提供彈性的裝置驅動程式介面, (DDI) 。 此 DDI 可讓開發人員選擇替代回呼介面。 驅動程式開發人員應該實作一組最適合目標 GPIO 控制器裝置硬體架構的事件回呼函式。
例如,如果 GPIO 控制器驅動程式支援讀取和寫入 GPIO I/O 針腳,開發人員可以選擇實作下列其中一組回呼函式:
CLIENT_ReadGpioPins 和 CLIENT_WriteGpioPinsCLIENT_ReadGpioPinsUsingMask 和 CLIENT_WriteGpioPinsUsingMask : CLIENT_ReadGpioPins 和 CLIENT_WriteGpioPins 函式會接收銀行號碼、GPIO 針腳編號的陣列,以及要讀取或寫入這些針腳的位值資料緩衝區。 如果讀取或寫入作業中通常只存取少量的 GPIO 針腳,這組回呼可能會產生最佳實作。 此實作通常用於硬體暫存器未對應記憶體的 GPIO 控制器。 不過,如果在讀取或寫入作業期間可能會存取數個 GPIO 針腳,或者 GPIO 控制器硬體可以平行存取多個 GPIO 針腳,另一對回呼函式可能會產生更好的實作。
CLIENT_ReadGpioPinsUsingMask和CLIENT_WriteGpioPinsUsingMask回呼函式可以在一個呼叫中讀取或寫入最多 64 個針腳的銀行。 CLIENT_ReadGpioPinsUsingMask函式會將 GPIO 針腳值讀入 64 位元遮罩。 CLIENT_WriteGpioPinsUsingMask函式使用兩個 64 位元遮罩。 一個遮罩表示要設定的 GPIO 針腳,另一個遮罩則表示要清除的 GPIO 針腳。 此實作通常用於記憶體對應 GPIO 控制器。