• 전체강좌

    Windows 10 IoT Core용 DirectX Project 생성 및 배포

    twitter facebook

    안녕하세요? 착한이입니다.


    임베디드 시스템을 위한 Windows 10 IoT Core 는 Windows 10 계열이므로

    UWP(Universal Windows Platform) 기반의 프로그램에서 DirectX를 사용할 수 있습니다.

    PC보다는 지원되는 범위에 제약이 따르지만

    DirectX 11과 DirectX 12를 지원하며 XAML도 지원하고 있습니다.

    또한 C/C++ 언어로 개발이 가능합니다.

    본 강좌에서는 Windows 10 IoT Core 용 DirectX Project를 생성 및 배포하는 방법에 대해 알아보겠습니다.


    1. Visual Studio 2017 설치하기


    Windows 10 IoT Core에서 실행되는 프로그램을 개발하려면 Visual Studio 2017이 필요합니다.

    그리고 Windows 10 을 사용하는 PC가 필요합니다.

    먼저 PC의 Windows 10을 1809 이상 버전으로 업데이트 해야 합니다. 

    다음으로 Visual Studio 2017을 다운로드하여 설치합니다.

    http://www.visualstduio.com 사이트에서 설치 파일을 다운로드 할 수 있으며,

    무료 버전이 Community 버전을 이용하셔도 됩니다.


    Visual Studio 2017을 설치할 때, 다음 항목을 반드시 설치해야  합니다.

    -유니버셜 Windows 플랫폼 개발

    -C++을 사용한 데스크톱 개발


    설치가 완료되면 Visual Studio 2017을 이용하여

    Windows 10 IoT Core 용 프로그램을 개발할 수 있습니다.


    2. DirectX Project 생성


    Windows 10 계열인 Windows 10 IoT Core에서 DirectX 를 사용할 수 있습니다.

    C/C++ 언어를 이용하여 개발할 수 있으며,

    Visual Studio 2017에서는 Project Template을 제공합니다.

    다음의 과정으로 Project를 생성하면 됩니다.


    Visual Studio 2017을 실행하고 다음 그림과 같이 "File" 메뉴를 선택합니다.


     

    Project를 생성하기 위해, "New - Project..." 메뉴를 선택합니다.


    New Project 화면이 표시되면 왼쪽 탭에서

    Visual C++ 하위의 "Windows Universal"을 선택합니다.

    다음 그림과 같이 프로그램 형태가 표시되면

    DirectX 12 App(Universal Windows) 를 선택합니다.


    화면 하단에 Name, Location, Solution을 본인의 Project에 맞게 작성합니다.

    "OK" 버튼을 클릭합니다. 

     


    다음과 같이 Target 장치의 OS 버전을 선택하는 화면이 표시됩니다.

    Windows 10 IoT Core의 버전과 같은 버전을 선택하면 됩니다.

    여기서는 1809 버전이며, "OK" 버튼을 클릭합니다.


    Visual Studio 2017이 자동으로 DirectX 12를 이용할 수 있도록

    기본 소스 코드를 포함한 Project를 생성해 줍니다.

    다음 화면과 같이 Project가 생성됨을 알 수 있습니다. 

     


    Solution Explorer를 보면 소스 코드와 헤더 파일을 비롯한 리소스 파일까지 포함되어 있습니다. 


    여기까지 진행하였다면 DirectX 12를 사용할 수 있는 Project 생성이 완료된 것입니다.

    비슷한 방법으로 DirectX 11을 이용할 수 있는 Project도 생성 가능합니다.


    다음으로 Project를 빌드 해 보겠습니다.

    Windows 10 IoT Core 장치의 CPU 종류에 맞게 다음과 같이 CPU를 선택합니다.

    Windows 10 IoT Core는 ARM, ARM64, x86 CPU를 지원합니다.

    본 강좌에서는 ARM 장치를 사용하므로 ARM을 선택합니다.  


    Visual Studio 2017의 "Build" 메뉴를 선택합니다.

    "Build Solution" 또는 "Build Project이름" 메뉴를 선택하면

    Project가 빌드 됩니다. 


    빌드 과정은 Visual Studio 2017의 Output 창에 표시됩니다.
    빌드가 성공하면 다음과 같이 실행 파일이 생성됩니다.


    3. DirectX Project 배포


    Project 빌드가 성공하였다면 Windows 10 IoT Core 장치에 배포할 수 있습니다.

    배포를 위해서는 PC와 Windows 10 IoT Core 장치는 유선랜 또는 무선랜으로

    같은 네트워크망에 연결되어 있어야 합니다.

    그리고 Windows 10 IoT Core 장치의 IP 주소를 확인해야 합니다.


    배포를 위한 IP 주소를 설정하기 위해 Project의 "Properties" 화면을 실행합니다.

    Visual Studio 2017의 "Project - Properties" 메뉴를 선택하거나

    다음 그림과 같이 Project를 선택하고 마우스 오른쪽 버튼을 클릭한 후

    "Properties" 메뉴를 선택합니다. 


    Property 화면이 표시되면 왼쪽 탭에서 "Debugging"을 선택합니다. 

     


    오른쪽 부분에서 Machine Name  부분에 Windows 10 IoT Core 장치의 IP 주소를 입력합니다.

    또는 "Locate..." 를 클릭해서 장치를 검색할 수 있습니다.


    장치가 검색되어 표시되면 원하는 장치를 선택하면 됩니다.

    선택된 장치의 IP 주소 또는 장치명이 표시됩니다.

     


    본 강좌에서는 장치의 IP 주소를 직접 입력하였습니다. 


    Windows 10 IoT Core 장치의 IP 주소는 Windows 10 IoT Core Dashboard에서 확인하실 수 있습니다.

    또는 장치의 화면에 표시되며, 고정 IP를 사용하는 경우, 공유기에서 설정이 가능합니다. 

     

    Windows 10 IoT Core 장치의 IP 설정이 완료되면 배포를 시작할 수 있습니다.

    Visual Studio 2017의 "Debug - Start Debugging" 또는

    "Debug - Start Without Debugging" 메뉴를 선택하면 프로그램이 배포됩니다.


    최초 배포 시에는 필요한 라이브러리를 배포하므로 다소 긴 시간이 소요되며,

    그 이후에는 빠르게 배포됩니다.

    빠르고 안정적인 배포를 위해서는 안정적인 네트워크 환경이 필요합니다.

    배포 과정은 Visual Studio 2017의 Output 창에 다음과 같이 표시됩니다. 


    DirectX 12을 이용한 프로그램이 Windows 10 IoT Core 장치에 배포가 완료되면

    프로그램이 실행됩니다. 실행 화면은 다음과 같습니다. 


    Windows 10 IoT Core 장치의 성능에 따라서 DirectX 12를 이용한 프로그램의 성능이 다를 수 있습니다.

    C/C++ 언어로 간단한 UI 또는 게임 개발 시에 이용하면 좋을 듯 하며,

    코덱 또는 이미지 처리 프로그램 개발을 위한 YUV, NV12 와 같은 이미지를 출력할 때

    DirectX 12를 유용하게 사용할 수 있습니다.

    이번 강좌에서는 Windows 10 IoT Core 용 DirectX Project 생성과 배포에 대해 알아 보았습니다.

    Windows 10 IoT Core용 프로그램 개발 시에 참고하시길 바랍니다.

    그럼 다음 강좌에서 뵙겠습니다.

    감사합니다.

     

    Windows 10 IoT Core와 Android 7.1/8.1 을 지원하는

    WAD-A64 CPU 모듈의 사양은 다음과 같습니다.

    1. CPU : Allwinner A64 (Cortex A53 - Max 1.2GHz) ARMv8
    2. RAM : 2GB LPDDR3 (Max 6GB)
    3. eMMC : 8GB (Max 128GB)
    4. Nor Flash : 16MB(Max 128MB)

    5. PMIC
    6. Connector : SODIMM (204 Pins)

    7. OS : Windows 10 IoT Core,

               Android 7.1/8.1

               Linux(Yocto)

    8. Size : 67.6 x 32 mm