GPIO WinRT 功能和壓力測試
GPIO 測試會透過 WinRT API 執行 GPIO 驅動程式的功能和壓力測試。 測試範圍包括:
- 確認讀取、寫入和中斷會使用回送在所有針腳上運作。 請參閱下方Board.xml的描述,以指定回送組態。
- 確認針腳在關閉控制碼時會還原為其預設狀態。
- 藉由比較列舉的針腳與組態檔來公開預期的針腳, (請參閱下方) Board.xml的描述。
- 驗證可以使用中斷可靠地追蹤針腳的狀態。
- 確認驅動程式在壓力條件下運作正常。 壓力測試會以平行方式切換兩組回送針腳,並確認 Read () 傳回的針腳值正確無誤,並在正確的時間引發中斷。
測試詳細資料
規格 |
|
平台 | |
支援的版本 |
|
預期的執行時間 (以分鐘為單位) | 5 |
類別 | 部署 |
以分鐘為單位的逾時 () | 10000 |
需要重新開機 | false |
需要特殊設定 | true |
類型 | automatic |
其他檔
此功能區域中的測試可能會有其他檔,包括必要條件、設定和疑難排解資訊,可在下列主題中找到 () :
執行測試
GPIO 功能和壓力測試至少需要 4 個針腳才能執行。 這些針腳編號稱為 A1、A2、B1 和 B2。 A1 必須透過 1k 電壓連接到 A2,B1 必須連接到 B2 到 1k 電壓,如下列圖解所示:
感應器可防止硬體在輸出爭用期間損毀,而且測試必須驗證磁片磁碟機模式。 系統會提示您提供 A1、A2、B1 和 B2 的針腳號碼,當您排程要執行的測試時。 如果您是從命令列執行測試,則必須使用 'Pins' 執行時間參數來指定針腳編號,如疑難排解一節所示。
在測試的預設組態中,只會執行上述 4 個釘選。 雖然這足以涵蓋控制器驅動程式,但也必須驗證每個公開的針腳都可用於 IO 和中斷。 若要在所有針腳上執行回送測試,請將每兩個針腳連接在一起,然後修改 %programfiles (x86) %\Windows Kits\10\Hardware Lab Kit\Tests\ < arch >\iot\Board.xml,如下所示:
在 < Table Id=「Pins」 > 元素下,為每個公開的針腳新增 Row <> ,其中 DefaultDriveMode 會指定當面板開啟電源時,您預期釘選所在的磁片磁碟機模式。 DefaultDriveMode 必須是 Windows.Devices.Gpio.GpioPinDriveMode 列舉中的其中一個值。
<Table Id="Pins"> <Row> <Parameter Name="PinNumber">0</Parameter> <Parameter Name="Enabled">True</Parameter> <Parameter Name="DefaultDriveMode">Input</Parameter> </Row> <Row> <Parameter Name="PinNumber">1</Parameter> <Parameter Name="Enabled">True</Parameter> <Parameter Name="DefaultDriveMode">InputPullUp</Parameter> </Row> <!-- By setting Enabled to False, you can also assert that a pin should NOT be accessible --> <Row> <Parameter Name="PinNumber">2</Parameter> <Parameter Name="Enabled">False</Parameter> </Row> </Table>
在 < Table Id=「Loopbacks」 > 元素下,為在回送組態中連接的每一對針腳新增 Row <> 。 例如,下列資料會指定針腳 0 連接到針腳 2,而針腳 1 連接到針腳 3。
<Table Id="Loopbacks"> <Row> <Parameter Name="Pin1">0</Parameter> <Parameter Name="Pin2">2</Parameter> </Row> <Row> <Parameter Name="Pin1">1</Parameter> <Parameter Name="Pin2">3</Parameter> </Row> </Table>
Board-rpi.xml和Board-mbm.xml是在 %programfiles (x86) %\Windows Kits\10\Hardware Lab Kit\Tests\ < arch > \iot 中提供,作為 Raspberry Pi 和 MinnowBoardMax 平臺的範例。
執行測試時,Board.xml必須存在於與Windows.Devices.LowLevel.UnitTests.dll相同的目錄中。 如果您透過 HLK 管理員執行測試,它會自動將Board.xml從 HLK 目錄複寫到裝置上的正確位置。 如果您在命令列上執行測試,則必須自行部署Board.xml。
疑難排解
如需 HLK 測試失敗的一般疑難排解,請參閱 針對 Windows HLK 測試失敗進行疑難排解。
建議您在命令列上執行測試,以深入瞭解失敗,並快速逐一查看解決方案。 以下是如何在命令列上執行測試:
將 %programfiles (x86) %\Windows Kits\10\Testing\Runtimes\TAEF\ < arch > \MinTe 複製到 c:\data\minte
將 %programfiles 中的所有檔案 (x86) %\Windows Kits\10\Hardware Lab Kit\Tests\ < arch > \iot 複製到裝置上的 c:\data。
Telnet 或 ssh 連線到您的裝置
將目錄變更為 c:\data
執行
minte\te.exe windows.devices.lowlevel.unittests.dll /p:Pins=A1,A2,B1,B2 /name:GpioTests::*
命令列測試使用方式:
minte\te.exe windows.devices.lowlevel.unittests.dll [/p:Pins=pin_numbers] [/name:test_name] [/p:Duration=duration]
- pin_numbers - 用於測試的針腳編號,其格式為 A1、A2、B1、B2 其中 A1 透過 1k 電壓連接到 A2,而 B1 連接到 B2 到 1k 電壓。 如果未指定,A1 預設為最低的可用針腳號碼、A2 預設為最高可用的針腳號碼、B1 預設為第二個最低可用的針腳號碼,而 B2 預設為第二個最高可用的針腳編號。 範例:/p:Pins=4,27,5,26
- test_name - 要執行的測試名稱,其中可能包含萬用字元。 範例:/name:GpioTests::*、/name:GpioTests::VerifySetDriveMode#metadataSet0
- duration - 執行壓力測試的時間長度。 範例:/p:Duration=10s (10 秒) ,/p:Duration=1m (1 分鐘) ,/p:Duration=2h (2 小時) ,/p:Duration=1d (1 天)
若要在預設組態中執行測試,
minte\te.exe windows.devices.lowlevel.unittests.dll /p:Pins=0,1,2,3 /name:GpioTests::*
若要執行特定測試,請將完整測試名稱傳遞至 /name 參數:
minte\te.exe windows.devices.lowlevel.unittests.dll /p:Pins=0,1,2,3 /name:GpioTests::VerifyInterruptStateTracking
若要執行壓力測試,建議的持續時間為 2 小時,請執行:
minte\te.exe windows.devices.lowlevel.unittests.dll /p:Pins=0,1,2,3 /name:GpioTests::* /p:Duration=2h
可協助進行手動疑難排解的工具是 GpioTestTool,這是從命令列與 GPIO 互動的簡單公用程式。
詳細資訊
參數
參數名稱 | 參數描述 |
---|---|
釘選 | A1、A2、 < B1 > 、 << B2 > A1 > 格式的回送針 < 腳連接到 A2,而 B1 則連接到 > B2 |
有效期間 | 指定執行每個壓力測試的時間長度。 例如 30s、1m、1h、1d |