랩 2: 고유한 BSP(보드 지원 패키지) 만들기
BSP에는 보드에 사용되는 구성 요소/실리콘에 특정한 디바이스 드라이버 세트가 포함되어 있습니다. 대부분 .inf 및 관련 .sys/.dll 파일 형식으로 구성 요소 공급업체/실리콘 공급업체에서 제공합니다.
다음과 같은 경우 새 BSP(보드 지원 패키지)를 만듭니다.
새로운 하드웨어 디자인 만들기
기존 하드웨어 설계에서 드라이버 또는 구성 요소 교체
새 BSP를 만들든 기존 BSP를 수정하든 사용자가 소유자가 됩니다. 이를 통해 보드에 업데이트를 설치하도록 허용할지 여부를 결정할 수 있습니다.
랩에서는 Raspberry Pi 2를 기반으로 하는 새 BSP를 만들어 기존 GPIO 드라이버를 제거하고 샘플 GPIO 드라이버인 GPIO KMDF 데모로 교체합니다.
새 BSP 작업 폴더 만들기
IoT Core Shell에서 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>
참고: 패키지를 더 쉽게 그룹화하기 위해 패키지를 하나 이상의 기능 ID로 결합할 수 있습니다. 예를 들어, 모든 Raspberry Pi 2 옵션 드라이버는 기능 ID: RPI2_DRIVERS를 사용합니다.
HelloBlinky 드라이버 추가
<PackageFile Path="%PKGBLD_DIR%" Name="%OEM_NAME%.Drivers.HelloBlinky.cab"> <FeatureIDs> <FeatureID>BLINKY_DRIVER</FeatureID> </FeatureIDs> </PackageFile>
새 제품 폴더 만들기
BSP 이름을 끝에 추가하여 새 작업 제품 폴더를 만듭니다.
newproduct ProductC MyRpi2
그러면 새 BSP에 연결된
C:\MyWorkspace\Source-<arch>\Products\ProductC
폴더가 만들어집니다.
프로젝트의 구성 파일 업데이트
Add-IoTProductFeature를 사용하여 제품 테스트 구성 파일 업데이트
Add-IoTProductFeature ProductC Test BLINKY_DRIVER -OEM (or) addfid ProductC Test BLINKY_DRIVER -OEM
이미지 빌드 및 테스트
이미지 빌드
IoT Core Shell에서 이미지를 만듭니다.
buildimage ProductC Test
그러면
C:\MyWorkspace\Build\<arch>\ProductC\Flash.ffu
에 제품 바이너리가 만들어집니다.Windows IoT Core 대시보드>새 디바이스 설정>사용자 지정을 시작하고 이미지를 찾습니다.
Micro SD 카드를 디바이스에 넣고 선택하고 사용 조건에 동의한 다음 설치를 클릭합니다. 이렇게 하면 이전 이미지가 새 이미지로 바뀝니다.
카드를 IoT 디바이스에 넣고 시작합니다.
잠시 후 디바이스가 자동으로 시작되고 앱이 표시되어야 합니다.
드라이버가 작동하는지 확인합니다.
- Hello, Blinky!에서 테스트 절차를 사용합니다. 랩에서 드라이버를 테스트합니다.