다음을 통해 공유


랩 2: 고유한 BSP(보드 지원 패키지) 만들기

BSP에는 보드에 사용되는 구성 요소/실리콘에 특정한 디바이스 드라이버 세트가 포함되어 있습니다. 대부분 .inf 및 관련 .sys/.dll 파일 형식으로 구성 요소 공급업체/실리콘 공급업체에서 제공합니다.

다음과 같은 경우 새 BSP(보드 지원 패키지)를 만듭니다.

  • 새로운 하드웨어 디자인 만들기

  • 기존 하드웨어 설계에서 드라이버 또는 구성 요소 교체

새 BSP를 만들든 기존 BSP를 수정하든 사용자가 소유자가 됩니다. 이를 통해 보드에 업데이트를 설치하도록 허용할지 여부를 결정할 수 있습니다.

랩에서는 Raspberry Pi 2를 기반으로 하는 새 BSP를 만들어 기존 GPIO 드라이버를 제거하고 샘플 GPIO 드라이버인 GPIO KMDF 데모로 교체합니다.

새 BSP 작업 폴더 만들기

  1. IoT Core 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
    

    그러면 새 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 Shell에서 이미지를 만듭니다.

    buildimage ProductC Test
    

    그러면 C:\MyWorkspace\Build\<arch>\ProductC\Flash.ffu에 제품 바이너리가 만들어집니다.

  2. Windows IoT Core 대시보드>새 디바이스 설정>사용자 지정을 시작하고 이미지를 찾습니다.

    Micro SD 카드를 디바이스에 넣고 선택하고 사용 조건에 동의한 다음 설치를 클릭합니다. 이렇게 하면 이전 이미지가 새 이미지로 바뀝니다.

  3. 카드를 IoT 디바이스에 넣고 시작합니다.

    잠시 후 디바이스가 자동으로 시작되고 앱이 표시되어야 합니다.

드라이버가 작동하는지 확인합니다.

  1. Hello, Blinky!에서 테스트 절차를 사용합니다. 랩에서 드라이버를 테스트합니다.

디바이스 레이아웃

다음 단계

랩 3: 앱 업데이트