ハードウェア定義を使用する
このトピックでは、高度なアプリケーションでハードウェア定義を使用する方法について説明します。 独自 のハードウェア定義ファイルを作成する 方法など、ハードウェア定義の詳細については、「ハードウェア定義」を参照してください。
メモ
JSON ハードウェア定義を含むディレクトリには、同等のヘッダー ファイル定義の inc/hw サブディレクトリも含まれています。
SDK のハードウェア定義を使用する
Azure Sphere SDK の HardwareDefinitions ディレクトリには、一般的な Azure Sphere ボードと、それらが使用するチップの定義が含まれています。 このディレクトリは、 %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions
Windows と /opt/azurespheresdk/HardwareDefinitions
Linux 上にあります。
CMakelists.txt 関数
azsphere_target_hardware_definition
を検索し、パラメーターをTARGET_DEFINITION
ターゲット ボードのハードウェア定義 JSON ファイルに設定します。 次の例は、アプリケーションでTARGET_DEFINITION
MT3620 リファレンス開発ボード (RDB) を使用している場合にパラメーターを設定する方法を示しています。azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")
メイン.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 フォルダーへのパスを表します。
メイン.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" ]},
アプリケーションをコンパイルしてパッケージ化します。