在支援即時的應用程式中使用 GPIO
Azure 球體支援 GPIO (一般用途的輸入/輸出) 。 GPIO 是整合回路上一種可程式化的數位 PIN 碼類型。 GPIO 沒有預先定義的功能,它們的行為可以由應用程式自訂。 GPIO 的一些常見用途是變更硬體裝置的狀態、控制 LED,以及讀取切換狀態。
本主題說明如何在支援 RTApp) 的即時應用程式 (使用 GPIO。 如需在高階應用程式中使用 GPIO 的相關資訊,請參閱 在高階應用程式中使用 GPIO。
RTApp 可以使用 Azure 球體裝置上的任何 GPIO。 GPIO 支援下列作業:
- 朗讀輸入
- 將輸出設為高或低
- 投票軟體插斷
注意
Azure 球體 OS 不會在啟動時重設周邊設備。 您的應用程式應確保周邊設備在啟動時和重新開機之後都處於已知良好狀態。
即時核心的 MT3620 GPIO 支援
在 MT3620 上,從 GPIO 0 開始,大部分 GPIO 會對應到 4 個區塊中的即時核心;不過,ISU 區塊 0 - 4 有五個 GPIO。 因此,如果高階應用程式 (或其他 RTApp) 在同一個區塊中要求 GPIO,RTApp GPIO 要求可能會失敗。 例如,如果高階應用程式要求 GPIO 8,且 RTApp 要求 GPIO 9,則第二個應用程式會在部署時傳回錯誤。
MT3620 RDB 上的每個 LED 對應至三個 GPIO:每個 GPIO 都適用于紅色、綠色和藍色通道。
如需註冊基本位址、中斷號碼、時脈速率、取樣頻率,以及 MT3620 的其他詳細資料,請參閱 MT3620 資料工作表 和 MT3620 M4 使用者手冊;如果問題仍然存在,您可以透過電子郵件要求 Avnet 的 Azure.Sphere@avnet.com 詳細資料。
GPIO 需求
您的應用程式代碼需要識別 GPIO 及其登錄的方法。 您可以在製造商的硬體檔中找到註冊基底位址。 RTApp 必須先初始化要使用的區塊,RTApp 才能使用 GPIO。 應用程式所使用的每一個區塊只需要初始化一次。
如需 MT3620 的詳細資料,請參閱 即時核心上的 GPIO 支援 MT3620。
應用程式資訊清單設定
若要使用 GPIO,RTApp 必須將其列在應用程式資訊清單的 [ 功能 ] 區段中。 使用在 JSON 檔案中針對目標硬體定義的 「AppManifestValue」 來識別 GPIO。 例如,下列一行會保留 GPIO 8 和 12:
"Capabilities": {
"Gpio": [ 8, 12 ]
}
GPIO 範例應用程式
GPIO 範例示範如何在 RTApp 中使用 GPIO。 README 檔案會提供詳細資料和指示。