ハードウェア定義を使用する
重要
これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。
このトピックでは、高度なアプリケーションでハードウェア定義を使用する方法について説明します。 独自のハードウェア定義ファイルの作成方法など、ハードウェア定義の詳細についてはHardware 定義を参照してください。
Note
JSON ハードウェア定義を含むディレクトリには、同等のヘッダー ファイル定義用の inc/hw サブディレクトリも含まれています。
SDK のハードウェア定義を使用する
Azure Sphere SDK の HardwareDefinitions ディレクトリには、一般的な Azure Sphere ボードと使用するチップの定義が含まれています。 このディレクトリは、Windows と Linux 上の/opt/azurespheresdk/HardwareDefinitions
で%ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions
されます。
CMakelists.txt関数
azsphere_target_hardware_definition
を検索し、ターゲット ボードのハードウェア定義 JSON ファイルにTARGET_DEFINITION
パラメーターを設定します。 次の例は、アプリケーションで MT3620 Reference Development Board (RDB) を使用する場合に、TARGET_DEFINITION
パラメーターを設定する方法を示しています。azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")
main.c では、ターゲット ボードの対応するハードウェア定義ヘッダー ファイルを含めます。
#include "hw/mt3620_rdb.h"
ヘッダー ファイルまたは JSON ファイルを参照して、アプリケーションで使用される識別子と周辺機器の種類に関する情報を取得します。 それに応じて、アプリケーション コードを作成または変更します。
たとえば、MT3620 参照開発ボード (RDB) をターゲットとするアプリケーションでは、オンボード LED が使用されます。 LED を識別するために使用される定数は、次のようにヘッダー ファイル mt3620_rdb.h で定義されます。
// LED 1 Red channel uses GPIO8. #define MT3620_RDB_LED1_RED MT3620_GPIO8
次の行は、ハードウェア定義で指定された情報を使用して LED を初期化します。
int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
アプリケーション マニフェストを更新して、アプリが現在使用している周辺機器を有効にします。
"Capabilities": { "Gpio": [ "MT3620_RDB_LED1_RED" ]},
アプリケーションをコンパイルしてパッケージ化します。
SDK と共にインストールされていないハードウェア定義を使用する
CMakelists.txtで
azsphere_target_hardware_definition
関数を検索します。使用するハードウェア定義ファイルを含むディレクトリへの相対パスまたは絶対パスを使用して、
TARGET_DIRECTORY
パラメーターを設定します。TARGET_DEFINITION
パラメーターをハードウェア定義 JSON ファイルの名前に設定します。 ビルド プロセスでは、このファイルと、それがインポートするすべてのファイルが、リストされている順序でターゲット ディレクトリ内で検索され、SDK 自体で検索されます。azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "<path>/my_app/contoso_hardware_definitions" TARGET_DEFINITION "contoso_board.json")
各ターゲット ディレクトリを二重引用符で囲んで指定し、ディレクトリ名をスペースで区切ります。 この例では、 <path> は、my_app フォルダーへのパスを表します。
main.c には、ターゲット ボードのハードウェア定義ヘッダー ファイルを含めます。 ビルド プロセスでは、このファイルと、それに含まれるファイルが、ターゲット ディレクトリの 'inc' サブディレクトリに一覧表示されている順序で検索され、次に SDK 自体で検索されます。 そのため、次の規則に従うと、ターゲット ディレクトリの inc/hw サブディレクトリに contoso_board.h が見つかります。
#include "hw/contoso_board.h"
ヘッダー ファイルまたは JSON ファイルを参照して、アプリケーションで使用される識別子と周辺機器の種類に関する情報を取得します。 それに応じて、アプリケーション コードを作成または変更します。
int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
アプリケーション マニフェスト (app_manifest.json) を更新して、アプリが現在使用している周辺機器を有効にします。
"Capabilities": { "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
アプリケーションをコンパイルしてパッケージ化します。