高度なアプリケーションで周辺機器を使用する
重要
これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。
高度なアプリケーションでは、専用の周辺機器をマップできます。 高度なアプリケーションで 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" であることに注意してください。
同時に読み込まれるアプリケーションでリソースを共有することはできません。リソースの使用は単一のアプリケーションに限られます。 Azure Sphere OS では、アプリケーションの読み込み時に、いくつかの重要なタスクが行われます。
- 要求された機能に対して、周辺機器に関連付けられたピンが構成されるように多重化を構成します。
- "コア マッピング" を設定します。これには、要求された周辺機器に関連付けられているレジスタにアプリケーションからアクセスできるようにする、ファイアウォールの構成が含まれます。
- マニフェストを確認し、あるアプリケーションで、別のアプリによって既に要求されているリソースが要求された場合、その読み込みは失敗します。
このセクションの残りの部分では、特定の周辺機器の使用方法について詳しく説明します。
Note
Azure Sphere OS は起動時に周辺機器をリセットしません。 アプリケーションでは、起動時または再起動後に周辺機器が正常な状態であることを確認する必要があります。
周辺機器を使用する新しいアプリケーションがインストールされ、次の条件が満たされると、デバイスの再起動がトリガーされます。
- デバイスの製造状態は DeviceComplete に設定されます。
- appDevelopment機能がデバイスに存在しません。 詳細については、「 Peripheral 構成のロックを参照してください。
デバイスの再起動が開始された場合は、再起動が完了し、デバイスが応答するまで待ちます。
トピック | 説明 |
---|---|
高度なアプリケーションで ADC を使用する | Azure Sphere でアナログ デジタル コンバーター (ADC) を使用する方法について説明します。 |
高度なアプリケーションで GPIO を使用する | Azure Sphere で汎用入出力 (GPIO) を使用する方法について説明します。 |
高度なアプリケーションで I2C を使用する | シリアル通信に相互集積回路 (I2C) を使用する方法について説明します。 |
高度なアプリケーションで PWM を使用する | Azure Sphere でパルス幅変調 (PWM) を使用する方法について説明します。 |
高度なアプリケーションで SPI を使用する | シリアル通信にシリアル周辺機器インターフェイス (SPI) を使用する方法について説明します。 |
高度なアプリケーションで UART を使用する | シリアル通信に UART を使用する方法について説明します。 |
高度なアプリケーションでウォッチドッグ タイマーを使用する | ウォッチドッグ タイマーの使用方法について説明します。 |