Задание 2. Создание собственного пакета поддержки платы (BSP)
BSP включает набор драйверов устройств, относящихся к компонентам или кремнию, используемым на плате. Они предоставляются поставщиками компонентов или поставщиками кремния, в основном в виде INF-файлов и связанных .sys/.dll файлов.
Создайте новый пакет поддержки платы (BSP), если:
Создание новой конструкции оборудования
Замена драйвера или компонента в существующей конструкции оборудования
Независимо от того, создаете ли вы новый поставщик служб BSP или изменяете существующий поставщик служб BSP, вы становитесь владельцем. Это позволяет решить, следует ли разрешить установку обновлений на досках.
В нашей лаборатории мы создадим новый BSP на основе Raspberry Pi 2, удалив существующий драйвер GPIO и заменив его примером драйвера GPIO: демонстрация GPIO KMDF.
Создание рабочей папки BSP
В оболочке IoT Core создайте рабочую папку BSP, которую вы хотите изменить с помощью Add-IoTBSP.
Add-IoTBSP MyRPi2 (or) newbsp MyRPi2
Добавление пакетов в манифест компонента
Откройте файл манифеста функции для нового BSP,
C:\MyWorkspace\Source-arm\BSP\MyRpi2\MyRpi2FM.xml
.В другом окне откройте манифест функции Raspberry Pi 2 для использования в качестве шаблона.
Добавьте базовые пакеты (BasePackages).
Драйверы UEFI для загрузочного раздела (RASPBERRYPI.RPi2.BootFirmware.cab)
Драйверы, необходимые для UpdateOS (SV.PlatExtensions.UpdateOS.cab)
Обязательные драйверы устройств (bcm2836sdhc.cab, dwcUsbOtg.cab rpiq.cab)
При создании собственного BSP обычно требуется драйвер дисплея и драйвер хранилища, а иногда и сетевой драйвер.
Настройки для конкретных устройств
Скопируйте в макет устройства и пакеты платформы (DeviceLayoutPackages, OEMDevicePlatformPackages).
Обратите внимание, что OEMDevicePlatform.xml и devicelayout.xml можно упаковыть в один пакет, например DeviceLayout.MBR4GB. Затем один и тот же пакет можно указать в качестве входных данных в обоих разделах (например, в разделе
<OEMDevicePlatformPackages>
и<DeviceLayoutPackages>
). Дополнительные сведения см. в разделе Макет устройства.Копирование в признаки (компоненты).
Скопируйте нужные функции. Исключите все, что не относится к вашему проекту.
Например, скопируйте в каждый из драйверов , кроме существующего драйвера GPIO:
<PackageFile Path="$(mspackageroot)\Retail\$(cputype)\$(buildtype)" Name="RASPBERRYPI.RPi2.GPIO.cab"> <FeatureIDs> <FeatureID>RPI2_DRIVERS</FeatureID> </FeatureIDs> </PackageFile>
Примечание. Чтобы упростить группирование пакетов, их можно объединить в один или несколько идентификаторов компонентов. Например, все необязательные драйверы Raspberry Pi 2 используют идентификатор компонента: RPI2_DRIVERS.
Добавление драйвера HelloBlinky
<PackageFile Path="%PKGBLD_DIR%" Name="%OEM_NAME%.Drivers.HelloBlinky.cab"> <FeatureIDs> <FeatureID>BLINKY_DRIVER</FeatureID> </FeatureIDs> </PackageFile>
Создание папки продукта
Создайте новую рабочую папку продукта, добавив имя BSP в конец.
newproduct ProductC MyRpi2
При этом создается папка :
C:\MyWorkspace\Source-<arch>\Products\ProductC
, которая связана с новым поставщиком служб BSP.
Обновление файлов конфигурации проекта
Обновление файла конфигурации теста продукта с помощью Add-IoTProductFeature
Add-IoTProductFeature ProductC Test BLINKY_DRIVER -OEM (or) addfid ProductC Test BLINKY_DRIVER -OEM
Создание и тестирование образа
Создание образа
В оболочке IoT Core создайте образ:
buildimage ProductC Test
При этом будут созданы двоичные файлы продукта по адресу
C:\MyWorkspace\Build\<arch>\ProductC\Flash.ffu
.Запустите панель мониторинга> Windows IoTБазовая Настройка нового устройства>Настраиваемая и перейдите к своему образу.
Поместите карта Micro SD на устройство, выберите его, примите условия лицензии и нажмите кнопку Установить. Предыдущий образ будет заменен новым.
Поместите карта на устройство Интернета вещей и запустите его.
Через некоторое время устройство должно запуститься автоматически, и вы увидите свое приложение.
Проверьте, работает ли драйвер.
- Используйте процедуры тестирования в лаборатории Hello, Blinky! для тестирования драйвера.