Udostępnij za pośrednictwem


Korzystanie z definicji sprzętu

Ważne

Jest to dokumentacja usługi Azure Sphere (starsza wersja). Usługa Azure Sphere (starsza wersja) zostanie wycofana 27 września 2027 r., a użytkownicy muszą przeprowadzić migrację do usługi Azure Sphere (zintegrowanej) do tej pory. Użyj selektora wersji znajdującego się powyżej spisu treści, aby wyświetlić dokumentację usługi Azure Sphere (zintegrowaną).

W tym temacie opisano sposób używania definicji sprzętu w aplikacji wysokiego poziomu. Zobacz Definicje sprzętu, aby uzyskać bardziej szczegółowe informacje na temat definicji sprzętu, w tym sposobu tworzenia własnych plików definicji sprzętu.

Uwaga

Katalog zawierający definicje sprzętu JSON zawiera również podkatalog inc/hw dla równoważnych definicji plików nagłówka.

Używanie definicji sprzętu z zestawu SDK

Katalog HardwareDefinitions w zestawie SDK usługi Azure Sphere zawiera definicje typowych tablic usługi Azure Sphere i używanych przez nie mikroukładów. Ten katalog znajduje się %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions w systemie Windows i /opt/azurespheresdk/HardwareDefinitions w systemie Linux.

  1. W CMakelists.txt wyszukaj funkcję azsphere_target_hardware_definition i ustaw TARGET_DEFINITION parametr na plik JSON definicji sprzętu dla tablicy docelowej. W poniższym przykładzie pokazano, jak ustawić parametr, TARGET_DEFINITION jeśli aplikacja używa tablicy programowania referencyjnego MT3620 (RDB):

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")

  2. W pliku main.c dołącz odpowiedni plik nagłówka definicji sprzętu dla tablicy docelowej:

    #include  "hw/mt3620_rdb.h"
    
  3. Zobacz plik nagłówka lub plik JSON, aby uzyskać informacje o identyfikatorze i typie urządzeń peryferyjnych używanych w aplikacji. Odpowiednio utwórz lub zmodyfikuj kod aplikacji.

    Na przykład aplikacja przeznaczona dla tablicy programowania referencyjnego MT3620 (RDB) używa wbudowanej diody LED. Stała używana do identyfikowania diody LED jest zdefiniowana w pliku nagłówka mt3620_rdb.h w następujący sposób:

    // LED 1 Red channel uses GPIO8.
    #define MT3620_RDB_LED1_RED MT3620_GPIO8
    

    Poniższa linia inicjuje diodę LED przy użyciu informacji podanych w definicji sprzętu.

    int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  4. Zaktualizuj manifest aplikacji, aby włączyć urządzenia peryferyjne używane przez aplikację:

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. Skompiluj i spakuj aplikację.

Używanie definicji sprzętu, która nie jest zainstalowana z zestawem SDK

  1. W CMakelists.txt wyszukaj azsphere_target_hardware_definition funkcję .

  2. TARGET_DIRECTORY Ustaw parametr ze ścieżką względną lub bezwzględną albo ścieżkami do katalogu lub katalogów zawierających pliki definicji sprzętu, których chcesz użyć.

  3. TARGET_DEFINITION Ustaw parametr na nazwę pliku JSON definicji sprzętu. Proces kompilacji wyszukuje ten plik i wszystkie importowane pliki w katalogach docelowych w podanej kolejności, a następnie w samym zestawie SDK.

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "<path>/my_app/contoso_hardware_definitions" TARGET_DEFINITION "contoso_board.json")

    Określ każdy katalog docelowy w podwójnym cudzysłowie i rozdziel nazwy katalogów spacjami. W przykładzie <ścieżka> reprezentuje ścieżkę do folderu my_app.

  4. W pliku main.c dołącz plik nagłówka definicji sprzętu dla tablicy docelowej. Proces kompilacji wyszuka ten plik, a te pliki, które zawiera, w podkatalogu "inc" katalogów docelowych w podanej kolejności, a następnie w samym zestawie SDK. W związku z tym, zgodnie z konwencją, następujące elementy znajdą contoso_board.h w podkatalogu inc/hw katalogów docelowych:

    #include   "hw/contoso_board.h"
    
  5. Zobacz plik nagłówka lub plik JSON, aby uzyskać informacje o identyfikatorze i typie urządzeń peryferyjnych używanych w aplikacji. Odpowiednio utwórz lub zmodyfikuj kod aplikacji.

    int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  6. Zaktualizuj manifest aplikacji (app_manifest.json), aby włączyć urządzenia peryferyjne używane przez aplikację:

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. Skompiluj i spakuj aplikację.