Share via


ラボ 2: 独自のボード サポート パッケージ (BSP) を作成する

BSP には、ボードで使用されるコンポーネントやシリコンに固有のデバイス ドライバーのセットが付属します。 それらはコンポーネント ベンダーやシリコン ベンダーによって、ほとんどの場合、.inf ファイルとそれに関連付けられている .sys ファイルや .dll ファイルの形式で提供されます。

新しいボード サポート パッケージ (BSP) は、次のようなときに作成します。

  • 新しいハードウェア設計を作成する

  • 既存のハードウェア設計でドライバーやコンポーネントを交換する

新しい BSP を作成する場合でも、既存の BSP に変更を加える場合でも、自分がオーナーになります。 これにより、更新プログラムをボードにインストールすることを許可するかどうかを決めることができます。

このラボでは、Raspberry Pi 2 をベースに新しい BSP を作成し、既存の GPIO ドライバーを削除して、サンプルの GPIO ドライバー (GPIO KMDF デモ) に置き換えます。

新しい BSP の作業フォルダーを作成する

  1. IoT Core シェルから、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 の両方を 1 つのパッケージにパッケージ化できることに注目してください (例: DeviceLayout.MBR4GB)。 そうすることで、その同じパッケージを両方のセクション (例: <OEMDevicePlatformPackages><DeviceLayoutPackages>) の入力として指定できます。 詳しくは、デバイス レイアウトに関する記事をご覧ください。

  4. 機能 (Features) をコピーします。

    必要な機能をコピーします。 プロジェクトに適用しないものは除外します。

    たとえば、既存の GPIO ドライバー以外の各ドライバーをコピーします。

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

    注: パッケージのグループ化を容易にするために、1 つ以上の機能 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
    

    これにより、新しい BSP にリンクされたフォルダー C:\MyWorkspace\Source-<arch>\Products\ProductC が作成されます。

プロジェクトの構成ファイルを更新する

  1. Add-IoTProductFeature を使用して、製品テストの構成ファイルを更新します。

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

イメージをビルドしてテストする

イメージをビルドする

  1. IoT Core シェルから、次のようにイメージを作成します。

    buildimage ProductC Test
    

    これにより、C:\MyWorkspace\Build\<arch>\ProductC\Flash.ffu に製品バイナリが作成されます。

  2. Windows IoT Core Dashboard を起動し、[新しいデバイスのセットアップ]>[カスタム] を選択して、イメージを参照します。

    デバイスに Micro SD カードを挿入してそれを選択し、ライセンス条項に同意して、[インストール] をクリックします。 これにより、前のイメージが新しいイメージに置き換えられます。

  3. カードを IoT デバイスに挿入し、起動します。

    しばらくすると、デバイスが自動的に起動し、アプリが表示されます。

ドライバーが動作するかどうかを確認する

  1. Hello, Blinky! ラボのテスト手順を使用して、ドライバーをテストします。

デバイス レイアウト

次のステップ

ラボ 3: アプリを更新する