Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Тесты GPIO выполняют функциональное и нагрузочное тестирование драйверов GPIO с помощью API WinRT. К область тестирования относятся:
- Убедитесь, что чтение, запись и прерывание работают на всех контактах с помощью замыкания на себя. Чтобы указать конфигурацию замыкания на себя, см. описание Board.xml ниже.
- Проверка того, что контакт возвращается в состояние по умолчанию при закрытии дескриптора.
- Убедитесь, что ожидаемые контакты доступны, сравнив перечисленные контакты с файлом конфигурации (см. описание Board.xml ниже).
- Проверка надежности отслеживания состояния пин-кода с помощью прерываний.
- Проверка правильности поведения водителей в условиях стресса. Нагрузочные тесты параллельно переключают два набора замыкания на себя и проверяют правильность значения контакта, возвращаемого методом Read(), и что прерывания запускаются в правильное время.
Сведения о тесте
Характеристики |
|
Платформы | |
Поддерживаемые выпуски |
|
Ожидаемое время выполнения (в минутах) | 5 |
Категория | Разработка |
Время ожидания (в минутах) | 10000 |
Требуется перезагрузка | false |
Требуется специальная конфигурация | Да |
Тип | automatic |
Дополнительная документация
Тесты в этой области функций могут содержать дополнительную документацию, включая предварительные требования, сведения о настройке и устранении неполадок, которые можно найти в следующих разделах:
Запуск теста
Для выполнения функциональных и нагрузочных тестов GPIO требуется не менее 4 контактов. Эти номера контактов называются A1, A2, B1 и B2. A1 должен быть подключен к A2 через резистор 1k, а B1 должен быть подключен к B2 через резистор 1k, как показано в следующей схеме:
Резисторы защищают оборудование от повреждения во время состязания на выходе и необходимы для тестирования для проверки режимов диска. Вам будет предложено указать номера контактов A1, A2, B1 и B2 при планировании тестов для выполнения. Если тесты выполняются из командной строки, необходимо указать номера закрепления с помощью параметра среды выполнения Pins, как показано в разделе Устранение неполадок.
В конфигурации тестов по умолчанию будут выполняться только 4 контакта, указанные выше. Хотя этого достаточно для охвата драйвера контроллера, необходимо также проверить, можно ли использовать каждый предоставленный контакт для операций ввода-вывода и прерываний. Чтобы выполнить тесты замыкания на себя на всех контактах, подключите каждые два контакта с помощью резистора 1k, а затем измените %programfiles(x86)%\Windows Kits\10\Hardware Lab Kit\Tests\<arch>\iot\Board.xml следующим образом:
В элементе <Table Id="Pins"> добавьте <строку> для каждого предоставленного контакта, где 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"> добавьте <строку для> каждой пары контактов, подключенной в конфигурации замыкания на себя. Например, следующие данные указывают, что контакт 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 см. в статье Устранение неполадок тестов HLK в Windows.
Мы рекомендуем запускать тесты в командной строке, чтобы получить представление о сбоях и быстро выполнить итерацию по решениям. Ниже описано, как выполнить тесты в командной строке.
Скопируйте %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 подключается к A2 через резистор 1k, а B1 подключается к B2 через резистор 1k. Если этот номер не указан, по умолчанию A1 — наименьший доступный номер пин-кода, A2 — самый высокий доступный номер пин-кода, B1 — второй самый низкий доступный номер пин-кода, а B2 — второй по величине доступный номер пин-кода. Пример: /p:Pins=4,27,5,26
- test_name — имя запускаемого теста, которое может содержать подстановочные знаки. Примеры: /name:GpioTests::*, /name:GpioTests::VerifySetDriveMode#metadataSet0
- длительность — как долго следует выполнять стресс-тесты. Примеры: /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 |