高度なアプリケーションで周辺機器を使用する
高度なアプリケーションでは、専用の周辺機器をマップできます。 高度なアプリケーションで 1 つ以上の周辺機器を使用するには:
- 周辺機器をアプリケーション マニフェストに追加します。
- 割り込みハンドラー (必要な場合) とその他のサポート コードをアプリケーションに追加します。
- 起動時に各周辺機器が既知の良好な状態になるようにコードを追加します。
高度なアプリで使用されるすべてのリソースは、アプリケーション マニフェストで指定する必要があります。 上位レベルのアプリでは、ターゲット チップのハードウェア定義 JSON ファイルで AppManifestValue に割り当てられているリソースの名前、またはハードウェア定義ヘッダー ファイル内のリソースに割り当てられた高レベルの名前を使用できます。 たとえば、MT3620 ハードウェアの ISU0 で I2C を識別する値を見つけるには、Microsoft Azure Sphere SDK フォルダーにインストールされている HardwareDefinitions フォルダーにある mt3620.json ファイルを調べます。 この周辺機器は、JSON ファイルで次のように定義されます。
{"Name": "MT3620_ISU0_I2C", "Type": "I2cMaster", "MainCoreHeaderValue": "(0)", "AppManifestValue": "ISU0", "Comment": "MT3620 ISU 0 configured as I2C"},
I2C 周辺機器の AppManifestValue に割り当てられる値は "ISU0" ですが、高レベルの名前は "MT3620_ISU0_I2C" であることに注意してください。
同時に読み込まれたアプリケーションはリソースを共有できません。リソースの使用は、1 つのアプリケーションに対して排他的です。 Azure Sphere OS は、アプリケーションを読み込むときにいくつかの重要なタスクを実行します。
- 周辺機器に関連付けられているピンが要求された機能用に構成されるように、多重化を構成します。
- コア マッピングを設定します。これには、アプリケーションが要求された周辺機器に関連付けられているレジスタにアクセスできるようにファイアウォールを構成する必要があります。
- マニフェストを確認し、別のアプリによって既に要求されているリソースを要求する場合、アプリケーションの読み込みに失敗します。
このセクションの残りの部分では、特定の周辺機器の使用について詳しく説明します。
メモ
Azure Sphere OS は、起動時に周辺機器をリセットしません。 アプリケーションでは、起動時または再起動後に周辺機器が既知の良好な状態になっていることを確認する必要があります。
周辺機器を使用する新しいアプリケーションがインストールされ、次の条件が満たされると、デバイスの再起動がトリガーされます。
- デバイスの製造状態は DeviceComplete に設定されます。
- appDevelopment 機能がデバイスに存在しません。 詳細については、「 周辺機器の構成のロック」を参照してください。
デバイスの再起動が開始された場合は、再起動が完了し、デバイスが応答するまで待ちます。
トピック | 説明 |
---|---|
高度なアプリケーションで ADC を使用する | Azure Sphere でアナログデジタル コンバーター (ADC) を使用する方法について説明します。 |
高度なアプリケーションで GPIO を使用する | Azure Sphere で汎用入出力 (GPIO) を使用する方法について説明します。 |
高度なアプリケーションで I2C を使用する | シリアル通信に Inter-Integrated 回線 (I2C) を使用する方法について説明します。 |
高レベルのアプリケーションで PWM を使用する | Azure Sphere でパルス幅変調 (PWM) を使用する方法について説明します。 |
高レベルのアプリケーションで SPI を使用する | シリアル通信にシリアル周辺機器インターフェイス (SPI) を使用する方法について説明します。 |
概要レベルのアプリケーションで UART を使用する | シリアル通信に UART を使用する方法について説明します。 |
上位レベルのアプリケーションでウォッチドッグ タイマーを使用する | ウォッチドッグ タイマーを使用する方法について説明します。 |