共用方式為


GPIO WinRT 功能和壓力測試

GPIO 測試會透過 WinRT API 執行 GPIO 驅動程式的功能和壓力測試。 測試範圍包括:

  • 確認讀取、寫入和中斷會使用回送在所有針腳上運作。 請參閱下方Board.xml的描述,以指定回送組態。
  • 確認針腳在關閉控制碼時會還原為其預設狀態。
  • 藉由比較列舉的針腳與組態檔來公開預期的針腳, (請參閱下方) Board.xml的描述。
  • 驗證可以使用中斷可靠地追蹤針腳的狀態。
  • 確認驅動程式在壓力條件下運作正常。 壓力測試會以平行方式切換兩組回送針腳,並確認 Read () 傳回的針腳值正確無誤,並在正確的時間引發中斷。

測試詳細資料

   
規格
  • Device.BusController.Gpio.WinRT.Discretional
平台
    支援的版本
    • Windows 10
    • Windows 10 (版本 1511)
    • Windows 10 (版本 1607)
    • Windows 10 (版本 1703)
    • Windows 10 (版本 1709)
    • Windows 10 (版本 1803)
    • Windows 10 版本 1809
    • Windows 10 (版本 1903)
    • Windows 10的下一個更新
    預期的執行時間 (以分鐘為單位) 5
    類別 部署
    以分鐘為單位的逾時 () 10000
    需要重新開機 false
    需要特殊設定 true
    類型 automatic

     

    其他檔

    此功能區域中的測試可能會有其他檔,包括必要條件、設定和疑難排解資訊,可在下列主題中找到 () :

    執行測試

    GPIO 功能和壓力測試至少需要 4 個針腳才能執行。 這些針腳編號稱為 A1、A2、B1 和 B2。 A1 必須透過 1k 電壓連接到 A2,B1 必須連接到 B2 到 1k 電壓,如下列圖解所示:

    gpio 回送圖解

    感應器可防止硬體在輸出爭用期間損毀,而且測試必須驗證磁片磁碟機模式。 系統會提示您提供 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 測試失敗進行疑難排解

    建議您在命令列上執行測試,以深入瞭解失敗,並快速逐一查看解決方案。 以下是如何在命令列上執行測試:

    1. 將 %programfiles (x86) %\Windows Kits\10\Testing\Runtimes\TAEF\ < arch > \MinTe 複製到 c:\data\minte

    2. 將 %programfiles 中的所有檔案 (x86) %\Windows Kits\10\Hardware Lab Kit\Tests\ < arch > \iot 複製到裝置上的 c:\data。

    3. Telnet 或 ssh 連線到您的裝置

    4. 將目錄變更為 c:\data

    5. 執行

      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