2013년 7월 3일 수요일

[WinCE 7] Windows Embedded Compact 7 개발(3) - Getting Started


Microsoft의 Windows Embedded Compact 7 관련 내용을 보자.

A. Windows Embedded Compact 7 (이하 WinCE 7 또는 Windows Compact 7) 시작

1. microsoft의 WinCE 7 사이트에 잘 설명이 되어 있다.

  http://msdn.microsoft.com/en-us/library/default.aspx


2. 위의 사이트에 보면, MSDN Library 항목 밑으로 개발에 대한 서브 항목들이 있다.

서브 항목은 아래와 같이 구성이 되어 있다. 하나씩 보면서 필요한 것들 위주로 보자.
[MSDN Library]
|_ [Mobile and Embedded Development]
   |_ [Windows Embedded]
      |_ [Windows Embedded Compact]
         |_ [Windows Embedded Compact 7]
            |_ [What's New]
            |_ [Getting Started]
            |_ [Developer Guides]
            |_ [Code Samples]
            |_ [Reference (Compact 7) Glossary Additional Resources]
            |_ [Troubleshooting Support Release Notes for Windows Embedded Compact 7]

위의 항목 중에 'Getting Started' 를 먼저 보자.
[Getting Started]
|_ [Prerequisties]
|_ [Installation]
   |_ [Update Windows Embedded Compact [FrontMatter]]
|_ [Set Up a Virtual Device]
|_ [Design Your First OS]
|_ [Create an SDK]
|_ [Create an Application]
|_ [Download the OS to the Device]
|_ [Run the Application]
|_ [Debug the Application]
|_ [What's Next]

이제 항목 하나씩 진행해 보자.

B. Getting Stated

0. 여기에서 나오는 것은 ARM과 x86 기반의 디바이스를 기준으로 설명하고 있다.


1. Prerequisties

- WinCE 7을 설치하기 위한 최소 사양에 대한 내용이다.
- 요즘 나오는 노트북이나 데스크탑의 경우엔 거의 최소 사양을 맞출 것으로 보인다.
- 다만 OS에서 Windows 8인 경우에는, Windows 8 Pro 이면 좋겠다
   (Windows 8인 경우엔 지원안되는 기능이 있음).

2. Installation

- WinCE 7을 설치하기인데, 문서의 후반부는 실제 설치시와 약간 다른 것 같다(7~11번 항목들).
- 'Full Installation' 보다는 'Customize Installation'을 하는 것이 좋겠다(문서 내용 참조).
- 문서에 나와있는 것과 같은 component들만 설치하는 것이 좋을 것 같고,
   필요없다면 일본어 문서 component는 빼도 될 듯 하다.

3. Set Up a Virtual Device

- 이 항목은 실제 디바이스가 없는 상황에서, 가상의 디바이스를 잡는 것이다.
- x86의 기반의 가상 디바이스만 만들 수 있다.
- x86이 아닌 다른 실제 디바이스를 갖고 있는 경우에는, 이 과정을 넘어가도 될 듯 하다.

4. Design Your First OS

- 실제 디바이스나 가상 디바이스에서 사용할 OS를 만든다.
- x86기반으로 설명하며, ARM기반으로 만들 경우에는 BSP만 ARM으로 변경해서 만들면 된다.
- 빌드 옵션 등은 별도로 수정하지 않았고, 관련 있는 경우에만 수정하면 될 것 같다.

5. Create an SDK

- 만든 OS를 이용할 수 있도록 SDK를 만든다.
- 만약 Platform Builder안에서 Application을 만든다면 SDK를 사용하지 않겠지만,
   Platform Builder를 쓰지 않으면 SDK를 사용해야 한다.
- 물론 SDK는 앞서 만들었던 OS Design 프로젝트에서 생성해야 한다.
- 관련 설명은 http://msdn.microsoft.com/en-us/library/jj823234.aspx 에서 볼 수 있다.
   : 'Getting Started' 다음 항목인 'Developer Guides' 안의 'Application Development' 항목이다.

6. Create an Application

- 앞서 만들었던 OS Design 프로젝트의 서브프로젝트로 Application을 만든다.
- 예제 코드를 넣어 빌드한다.

7. Download the OS to the Device

- 앞서 만들었던 OS Design을 가상 디바이스에 다운로드 하는 것이다.
- 문서대로 따라하면 가상 디바이스를 띄우는데 그리 어려운 문제는 없다.
- 다만, 주의할 점이 몇가지 있기에 적어 본다.
   : [주의 1] 개발 PC가 Windows 7 Pro라고 가정한다.
      i. 문서대로 진행하면서, 뒷 부분에 보면 run-time image를 다운로드 하기 위해
         'Device Status' 창과 'BOOTME messages'를 보내는 창이 떠 있을 것이다.
      i. 이 때, 다운로드가 진행이 안되면서, 에러를 표시할 것이다.
        <에러 내용>
          * ERROR: BootTransportPb: TFTP timeout occured!
          * ERROR: BootDownloadBin!ImageType: BootTransportRead Failed!
        <관련 사이트 > :  http://social.msdn.microsoft.com/Forums/en-US/34db2cc5-4034-4089-b324-f0a54258f158/virtual-cepc-image-download-error
          * 나와 똑같은 에러가 난 상황에 대하여 논의된 내용들이다.
      i. 해결 방법
          * UDP CRC Checksum을 '사용 안 함' 으로 한다.
          * 위치 : [시작] - [제어판] - [네트워크 및 공유 센터] -
                      [네트워크 상태 및 작업 보기] - [어댑터 설정 변경] -
                      [로컬 영역 연결] 우클릭하여 '속성' 열기 -
                      '연결에 사용할 장치'의 '구성' 버튼 누르기 - '고급' 탭 누르기 -
                      'UDP 체크섬 오프로드(IPv4)' 의 값을 '사용 안 함' 으로 변경
          * 이렇게 수정을 하고, 다시 해보면 정상적으로 다운로드가 진행된다.
   : [주의 2] OS를 ARM 기반으로 만들고, 가상 디바이스에 다운로드 하면
      'Device Status' 창이 닫히면서, 중단된다.
      i. 앞서 만들었던 OS Design은 x86 기반으로 만든 경우에는,
         여기서 다운로드가 되어 가상 디바이스를 실행할 수 있다.
      i. 해본 것은 아니지만, ARM기반으로 OS를 만들어서,
         실제 디바이스에 다운로드하는 것은 될 것으로 본다.

8. Run the Application

- 앞서 만들었던 Application을 가상 디바이스 및 실제 디바이스에서 실행한다.

9. Debug the Application

- 앞서 만들었던 Application을 가상 디바이스 및 실제 디바이스에서 실행하면서 디버깅한다.


C. 다음으로 해 볼 내용

1. 실제 디바이스(ARMv7)용 Application 제작 및 실행


[WinCE 7] Windows Embedded Compact 7 개발(2) - Visual Studio 2008 설치

WinCE 7의 개발을 하기 위해선 Visual Studio 2008 Pro 버전이 필요하다.

검색을 해보니, Visual Studio 2008을 잘 설치할 수 있는 방법에 나온 블로그가 있기에 내용을 연결한다.

A. 외부 블로그의 설명

1. [원문 블로그] Visual Studio 2008 설치오류 없이 설치하는 법 - SP1, 최신 업데이트 적용

http://blog.minjae.kr/m/post/view/id/90

2. [내용] 원문의 내용입니다.

Visual Studio 2008을 설치해서 사용하고자 할때,
딱, VS2008의 최초 배포상태로만 설치해서 사용한다면 별로 문제될것이 없겠지만,
개발을 하면서 서비스팩이나 Windows SDK같은것을 설치하지 않고 사용하는 사람은 없을 것이다.

뭐 추가로 필요한 것이 있으면 언제든지 필요할때마다 설치해서 사용하는 것이 좋겠지만
MS 관련 제품군들이 다 그렇듯이 문제는 이놈들이
레지스트리를 비롯하여 윈도우환경 자체를 너무 많이 건드린다는 것이고,
이 과정에서 지네 MS제품군들간의 충돌 문제로 설치오류가 빈번히 발생한다는 것이다.

실례로,
VS 2008을 설치 후, SP1을 설치하기 전에
윈도우 업데이트를 통해 VS2008 관련 Hotfix를 설치했다면 SP1이 설치에 실패 하는 경우가 허다하게 발생한다.
그리고, SP1 설치전 윈도우 SDK를 설치해도 역시나 SP1이 설치되지 않는 경우가 많다.

전자의 경우 Visual Studio 2008 Service Pack Preparation Tool 이라는 것을 설치하면
SP1 설치에 문제가 되는 Hotfix 들을 알아서 제거해 줘서 SP1을 설치할 수 있지만,
후자의 경우에는 인터넷에 떠도는 레지스트리 수정 방법 같은 것을 적용해도
충돌이 일어난 SDK를 삭제하기 전까지는 계속해서 설치오류가 발생한다.

따라서, 설치오류로 인한 스트레스와 재설치 등으로 인한 시간낭비를 줄이기 위해서는
Visual Studio 2008을 다음 순서로 설치하는 것이 좋다.

물론 운이 좋다면 순서 상관없이 막 설치해도 오류가 안나는 경우도 있지만
지금까지의 경험을 바탕으로 아래 순서로 설치하는 것이 설치오류를 피하는 가장 좋은 방법이라 생각된다.
앞으로는 Visual Studio 2008 설치오류로 스트레스 받는 사람이 줄어들기를 바란다.


1. Microsoft Visual Studio 2008 설치.
2. Microsoft Visual Studio 2008 서비스 팩1 설치.
3. VS 2008 SP1 Intellisense Locale 버그 패치 설치 (필자같이 영어 약한 사람은 필수.)
4. MSDN Library for Visual Studio 2008 SP1 설치.
5. Windows SDK for Windows Server 2008 and .NET Framework 3.5 설치
   (이과정에서 필요하다면 DirectX SDK같은 필요한 추가 SDK설치)
6. Microsoft Visual Studio International Pack 1.0 SR1 설치 (만약 필요하다면)
7. Microsoft Visual Studio International Feature Pack 2.0 설치 (만약 필요하다면)
8. Microsoft Windows Update를 통한 Hotfix 설치


B. 적용한 내용

1. 설치한 순서

  - Microsoft Visual Studio 2008 설치
  - Microsoft Visual Studio 2008 SP 1 설치

위의 내용에서 일단 1번과 2번만 했다. 이후 것들은 아직 설치를 하지 않았는데, 필요하면 설치를 해야겠다.


2. 추가 설치 (디버깅용 패치)

[내용]
    When debugging Windows Embedded Compact 7 application using the Visual Studio 2008 for Smart Devices debugger, a user might not be able to use the single step function. This update addresses this issue.

  - Microsoft Visual Studio 2008 update
     http://www.microsoft.com/en-us/download/details.aspx?id=11935

  - 참조 블로그
     에릭님의 블로그 : http://blog.naver.com/PostView.nhn?blogId=mmxtechn&logNo=140180114869











[WinCE 7] Windows Embedded Compact 7 개발 (1) - 개발 PC(Win8)와 실제 디바이스 연결

Windows Embedded Compact 7 (이하 WinCE 7)단말에 개발을 할 일이 생겼다.
개발용 PC와 실제 디바이스를 연결해보려 한다.

A. Windows 8과 Windows Embedded Compact 7 연결

Windows 8에 WinCE 7단말을 연결하였더니, usb로 연결이 안된다. usb 드라이버를 못 찾는 것 같아서 여기 저기 찾아보았다. Activesync 라는 것을 써서 Windows PC와 모바일 단말(WinCE 7)을 연결하는 것으로 보인다(ActiveSync를 사용해 본 적이 없으니 처음부터 삽질을 하게 되었다).

1. Windows Mobile Device Center 확인

Windows 8에는 Windows Mobile Device Center 라는 것이 있다(이것을 이용하여 PC와 모바일 단말(WinCE 7)을 연결한다).
제어판을 들어가면(Windows 키 + X 버튼), 큰아이콘 기준으로 보면 찾기 쉽다.



범주 기준으로 본다면, '시스템 및 보안' -> '하드웨어 및 소리' 로 들어가면 중간쯤에 있다.



2. Windows Mobile Device Center 다운로드 및 설치

Windows Mobile Device Center 를 실행해보자. 실행이 안된다. 뭔가 문제가 있는 것이겠지.
그래서 Windows 8에서 WinCE 7 단말과 연결이 안된 것으로 보인다.
Windows Mobile Device Center 드라이버를 찾아보자.

Windows Mobile Device Center 관련 support page : http://support.microsoft.com/kb/931937/ko
드라이버 다운로드는 아래 사이트에서 받으면 된다.
 - 64비트 버전 : http://www.microsoft.com/en-us/download/details.aspx?id=3182
 - 32비트 버전 : http://www.microsoft.com/en-us/download/details.aspx?id=14

다운로드 받을려면 GenuineCheck.exe파일을 받으라고 나온다. 유효성 검사를 하는 듯 하다.


다운 받아서 실행하면 코드 값이 나오는 것을 입력하면 다운로드를 할 수 있다.



Windows Mobile Device Center 드라이버를 설치 또는 업데이트를 한다.

3. WinCE 7 단말의 연결 확인

이후에 Windows Mobile Device Center를 실행하면, 장치와 연결되어 있다고 나온다.



윈도우 탐색기에서 보면, '휴대용 장치' 항목에 WinCE 7 장치가 연결되어 있는 것을 볼 수 있다.(이미지 첨부 - 탐색기)



추가 : 위의 내용은 크롬 브라우져로 진행한 것이다. IE를 쓰면 약간 다른 방식으로 진행된다.
크롬에서는 GenuineCheck.exe 파일를 다운 받아 실행하여, 코드 값을 생성하여 사용했는데, IE에서는 뭔가 설치되는 느낌이었다.
크롬에서는 파일을 다운받을 때, 위의 파일을 계속 받으라고 나오는데, IE에서는 한번 설치(?)하면 이후에 나오지 않았다.

B. 다음에 해볼 내용

  1. Microsoft 사이트를 들어가서, WinCE 7 개발에 대한 전반적인 내용을 진행해 보자.