實驗室 2:建立您自己的面板支援套件 (BSP)
BSP 包含一組裝置磁碟機,這些設備磁碟機專屬於面板中使用的元件/晶片。 這些是由元件廠商/晶片廠商提供,主要是以 .inf 的形式提供,以及相關聯的.sys/.dll 檔案。
在下列情況下建立新的面板支援套件 (BSP) :
建立新的硬體設計
取代現有硬體設計上的驅動程式或元件
無論您是建立新的 BSP 或修改現有的 BSP,您都會成為擁有者。 這可讓您決定是否要在面板上安裝更新。
在實驗室中,我們將根據 Raspberry Pi 2 建立新的 BSP,移除現有的 GPIO 驅動程式,並將它取代為範例 GPIO 驅動程式:GPIO KMDF 示範。
建立新的 BSP 工作資料夾
從 IoT 核心殼層,建立您想要使用 Add-IoTBSP修改的 BSP 工作資料夾。
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 核心殼層建立映射:
buildimage ProductC Test
這會在 建立產品二進位檔
C:\MyWorkspace\Build\<arch>\ProductC\Flash.ffu
。啟動Windows IoT 核心版儀表板>設定新的裝置>[自訂],並流覽至您的映射。
將 Micro SD 記憶卡放在裝置中,選取它、接受授權條款,然後按一下 [ 安裝]。 這會以新的映射取代上一個映射。
將卡片放入 IoT 裝置,然後啟動它。
一段時間之後,裝置應該會自動啟動,您應該會看到您的應用程式。
檢查驅動程式是否正常運作
- 使用 Hello, Blinky! 實驗室中的測試程式 來測試驅動程式。