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.
W CMakelists.txt wyszukaj funkcję
azsphere_target_hardware_definition
i ustawTARGET_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")
W pliku main.c dołącz odpowiedni plik nagłówka definicji sprzętu dla tablicy docelowej:
#include "hw/mt3620_rdb.h"
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);
Zaktualizuj manifest aplikacji, aby włączyć urządzenia peryferyjne używane przez aplikację:
"Capabilities": { "Gpio": [ "MT3620_RDB_LED1_RED" ]},
Skompiluj i spakuj aplikację.
Używanie definicji sprzętu, która nie jest zainstalowana z zestawem SDK
W CMakelists.txt wyszukaj
azsphere_target_hardware_definition
funkcję .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ć.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.
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"
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);
Zaktualizuj manifest aplikacji (app_manifest.json), aby włączyć urządzenia peryferyjne używane przez aplikację:
"Capabilities": { "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
Skompiluj i spakuj aplikację.