Udostępnij przez


Lista kontrolna wymagań kontrolera GPIO

W tym temacie przedstawiono podsumowanie wymagań dotyczących sprzętu, oprogramowania układowego i oprogramowania dla urządzeń kontrolera ogólnego przeznaczenia (GPIO), które są widoczne dla systemu Windows.

Wymagania sprzętowe kontrolera GPIO

  • Kontroler GPIO jest zintegrowany z soC (nie podłączony przez magistralę SPB).

    Zwiększa niezawodność Emulated ActiveBoth.

  • Obsługiwane są przerwania poziomowe.

    Wymagane zarówno dla funkcji emulacji ActiveBoth, jak i Debounce Emulation.

  • Obsługiwane są polaryzacje o wysokich i niskich przerwaniach.

    Wymagane zarówno dla funkcji Emulated ActiveBoth, jak i Debounce Emulation.

  • Polarność przerwań może być ponownie zaprogramowana podczas działania programu.

    Wymagane zarówno dla funkcji emulacji ActiveBoth, jak i Debounce Emulation.

Wymagania dotyczące oprogramowania układowego kontrolera GPIO

  • Kontroler GPIO _CRS zawiera wszystkie zasoby dla wszystkich banków pin w kontrolerze.

  • Kontroler GPIO określa kolejność zasobów _CRS, przeprowadzając mapowanie przerwań od banku do systemu.

  • _AEI metoda i metody zdarzeń (_Exx, _Lxx lub _EVT) istnieją dla dowolnych zdarzeń ACPI zasygnalizowanych przez GPIO.

  • Kontroler GPIO _DSM dołączony, jeśli jakiekolwiek przerwania ActiveBoth podłączone do kontrolera są ustawione na logicznie wysokie zamiast logicznie niskie.

  • Zaimplementuj metody _REG dla każdego kontrolera GPIO i zapobiegaj użyciu generalPurposeIO OpRegions, jeśli _REG wskazuje, że program obsługi regionów jest niedostępny.

  • Limit czasu odpudzania jest uwzględniony w deskryptorze zasobu GPIOInt dla wszelkich przerwań, które wymagają odpudzania.

Wymagania dotyczące sterownika kontrolera GPIO

  • Obsługa wersji 2 interfejsu między GpioClx i sterownikiem kontrolera GPIO:

    • Zaimplementuj funkcję CLIENT_QueryEnabledInterrupts wywołania zwrotnego. To znacznie pomaga w diagnozowaniu burzy przerwań.

    • Jeśli flaga BankIdlePowerMgmtSupported jest ustawiona w strukturze CONTROLLER_BASIC_INFORMATION , sterownik kontrolera GPIO musi zaimplementować funkcje CLIENT_SaveBankHardwareContext i CLIENT_RestoreBankHardwareContext wywołania zwrotnego, a te funkcje muszą odpowiednio zapisać/przywrócić kontekst banku, w tym maskowany/niemaskowany stan przerwań. Należy pamiętać, że przerwania nie mają gwarancji rozłączenia w momencie wywołania tej funkcji, ale jeśli nadal są połączone, muszą być maskowane.

    • Jeśli flaga DeviceIdlePowerMgmtSupported jest ustawiona w strukturze CONTROLLER_BASIC_INFORMATION , funkcje CLIENT_StartController i CLIENT_StopController wywołania zwrotnego muszą odpowiednio zapisać/przywrócić kontekst dla wszystkich banków, w tym maskowany/niemaskowany stan przerwań. Należy pamiętać, że przerwania nie mają gwarancji rozłączenia w momencie wywołania tej funkcji, ale jeśli nadal są połączone, muszą być maskowane.

  • Ustaw flagę EmulateDebouncing w strukturze CONTROLLER_BASIC_INFORMATION . Znacznie zwiększa to odporność na hałas dla urządzeń, których przerwania podlegają wyładowaniu elektrostatycznym (takim jak przyciski, wtyczki itd.).

  • Ustaw flagę EmulateActiveBoth w strukturze CONTROLLER_BASIC_INFORMATION i zaimplementuj funkcję CLIENT_ReconfigureInterrupt wywołania zwrotnego. Zapewnia to niezawodne wykrywanie krawędzi dla przerwań typu ActiveBoth.