实验 2:创建自己的电路板支持包 (BSP)

BSP 包含特定于电路板中使用的组件/芯片的设备驱动程序集。 它们由组件供应商/芯片供应商提供,主要采用 .inf 和关联的 .sys/.dll 文件形式。

在以下情况中创建新的电路板支持包 (BSP):

  • 创建新的硬件设计

  • 替换现有硬件设计上的驱动程序或组件

无论是创建新 BSP 还是修改现有 BSP,你都将成为所有者。 这使你可以决定是否允许在电路板上安装更新。

在实验中,我们将基于 Raspberry Pi 2 创建新的 BSP,删除现有 GPIO 驱动程序并将其替换为示例 GPIO 驱动程序:GPIO KMDF 演示

创建新的 BSP 工作文件夹

  1. 从 IoT 核心版 Shell 创建要使用 Add-IoTBSP 修改的 BSP 工作文件夹。

    Add-IoTBSP MyRPi2
    (or) newbsp MyRPi2
    

将包添加到功能清单中

  1. 打开新 BSP 的功能清单文件 C:\MyWorkspace\Source-arm\BSP\MyRpi2\MyRpi2FM.xml

    在另一个窗口中,打开 Raspberry Pi 2 功能清单以用作模板。

  2. 添加基本包 (BasePackages)。

    • 启动分区的 UEFI 驱动程序 (RASPBERRYPI.RPi2.BootFirmware.cab)

    • UpdateOS 所需的驱动程序 (SV.PlatExtensions.UpdateOS.cab)

    • 必需的设备驱动程序 (bcm2836sdhc.cab、dwcUsbOtg.cab、rpiq.cab)

      创建自己的 BSP 时,通常需要使用显示器驱动程序和存储驱动程序,有时需要网络驱动程序。

    • 特定于设备的自定义项

  3. 复制设备布局包和平台包 (DeviceLayoutPackages、OEMDevicePlatformPackages)。

    请注意,可以将 OEMDevicePlatform.xml 和 devicelayout.xml 打包到一个包中,例如 DeviceLayout.MBR4GB。 然后,可以在两个部分(例如 <OEMDevicePlatformPackages><DeviceLayoutPackages> 下)中指定此包作为输入。 若要了解详细信息,请参阅设备布局

  4. 复制功能(功能)。

    复制所需功能。 排除不适用于项目的任何内容。

    例如,除了现有 GPIO 驱动程序以外,复制其他每个驱动程序:

    <PackageFile Path="$(mspackageroot)\Retail\$(cputype)\$(buildtype)" Name="RASPBERRYPI.RPi2.GPIO.cab">
        <FeatureIDs>
          <FeatureID>RPI2_DRIVERS</FeatureID>
        </FeatureIDs>
    </PackageFile>
    

    注意:若要轻松对包进行分组,可以将它们合并到一个或多个功能 ID 中。 例如,所有 Raspberry Pi 2 可选驱动程序使用功能 ID RPI2_DRIVERS。

  5. 添加 HelloBlinky 驱动程序

        <PackageFile Path="%PKGBLD_DIR%" Name="%OEM_NAME%.Drivers.HelloBlinky.cab">
          <FeatureIDs>
            <FeatureID>BLINKY_DRIVER</FeatureID>
          </FeatureIDs>
        </PackageFile>
    

创建新的产品文件夹

  1. 创建新的工作产品文件夹,将 BSP 名称添加到末尾。

    newproduct ProductC MyRpi2
    

    这将创建文件夹 C:\MyWorkspace\Source-<arch>\Products\ProductC,它链接到新的 BSP。

更新项目的配置文件

  1. 使用 Add-IoTProductFeature 更新产品测试配置文件

    Add-IoTProductFeature ProductC Test BLINKY_DRIVER -OEM
    (or) addfid ProductC Test BLINKY_DRIVER -OEM
    

生成和测试映像

生成映像

  1. 从 IoT 核心版 Shell 创建映像:

    buildimage ProductC Test
    

    这会在 C:\MyWorkspace\Build\<arch>\ProductC\Flash.ffu 中创建产品二进制文件。

  2. 启动“Windows IoT 核心版仪表板”>“设置新设备”>“自定义”,并浏览到你的映像。

    将 Micro SD 卡置于设备中,选择它并接受许可条款,然后单击“安装”。 这会将上一个映像替换为新映像。

  3. 将卡置于 IoT 设备中,然后启动设备。

    片刻后,设备会自动启动,你应会看到你的应用。

检查驱动程序是否正常工作

  1. 使用你好,Blinky!实验中的测试过程来测试驱动程序。

设备布局

后续步骤

实验 3:更新应用