58
위위위위위 위위위위위위위 Kim seolhyang 2008-05-27 Windows Embedded CE 6.0 - Windows CE 시시시시 01 -

Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

위즈솔루션 네트워크서비스Kim seolhyang2008-05-27

Windows Embedded CE 6.0

- Windows CE 시작하기 01 -

Page 2: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

목차

Windows CE 소개.................................................................................................2

1. Windows CE 의 특징..............................................................................................2

2. Windows CE 개발 과정..........................................................................................3

3. 필요 프로그램......................................................................................................4

4. 설치 과정.............................................................................................................51. Windows Embedded CE 6.0 Evaluation Edition...........................................................52. Windows Embedded CE 6.0 Platform Builder Service Pack 1.msi..............................7

5. Windows Embedded CE R2 설치하기....................................................................13

6. Win CE OS 만들기...............................................................................................161. Sysgen(System Generation) 이란?..............................................................................23

7. OS 디자인에 응용 프로그램 추가하기.................................................................261. 사용자 정의 레지스트리 키 추가하기................................................................................262. 플랫폼에 레지스트리 정보 추가하기.................................................................................283. 외부 이미지(그림) 파일 포함 시키기................................................................................294. 서브 프로젝트 응용 프로그램 사용하기............................................................................30

8. Windows CE Application 개발하기.............................................................311. Windows CE SDK 추가하기..........................................................................................312. Windows CE Application 개발하기..............................................................................35

9. 디버깅 하기........................................................................................................441. visual studio 2005 디버깅............................................................................................442. 디버그 메시지 (디버그 존)...............................................................................................443. Kernel Debugger.........................................................................................................454. 그 외 Remote Tool........................................................................................................47

10. Windows CE BSP 추가하기...........................................................................50

11. 참조 사이트........................................................................................................55

Kim seolhyang 2008-05-27 1/56

Page 3: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

Windows CE 소개Windows CE 는 메모리를 적게 차지하는 차세대 스마트 모바일 기기를 신속하게 개발할 수 있는 가장 강력한 도구와 32 Bit Real-Time Embedded 운영 체제를 지원한다.

마이크로소프트의 향상된 최신 실시간 운영 체제로서 소비자 전자 제품, 게이트웨이, 산업용 컨트롤러, 모바일 휴대폰 기기, 셋톱박스, 인터넷 전화(VOIP), 씬 클라이언트(Thin Client) 등과 같이 다양한 혁신적 초 경량 디바이스를 신속하게 개발할 수 있다.

1. Windows CE 의 특징

광범위하고 포괄적인 CPU 지원

Windows CE 는 다음과 같은 4 개의 마이크로프로세서 core 및 에뮬레이션 기술을 지원함으로써 고급 디자인 및 프로세서 유연성을 제공합니다.

다양한 CPU Family 지원 Family BSP CPU

ARM4IIntel Mainstone III PXA27xH4 Sample OMAP2420Aruba board OMAP5912Emulator ARMV4I (S3C2410 based)

MIPS NEX SG2 Vr5500 NEC Electronics Vr5500SH4 Renesas US7750R HARP

(Aspen)SH4

x86 x86 (CEPC) x86 - 표준 PE(Portable Executable) 포맷의 사용- 데스크 탑 윈도우와 동일한 파일 포맷 사용- 멀티 스레드, 멀티 프로세스 지원- Hard Real time OS- 일정 시간 내의 인터럽트 지연 시간 보장- 타이머 간격 조정 가능- 중첩 인터럽트 지원

Modular & Compact

Windows CE 는 제품에 필요한 기능만을 선택하여 OS 의 크기를 최적화할 수 있도록 module 화된 운영체제로 설계되었으며, OEM 은 원하는 기능의 필요한 component 만을 선택하여 다양한 환경의 Windows CE OS 를 design 할 수 있다.

유/무선 연결 지원 Windows CE 는 여러 가지 범위의 유/무선 연결을 지원하는 Mobile 장치를 만들 수 있도록, Bluetooth 나 802.11x 를 포함하는 PAN, LAN, Wireless/Wired Networking 환경을 지원합니다

안정된 실시간 성능low-latency, Hard Real-Time Kernel 을 통해 대부분의 실시간 장치에서 안정된 실시간 동작을 효과적으로 제공할 수 있는 시스템 서비스를 지원합니다

풍부한 멀티미디어 지원최신 Windows Media 9 Series CODEC 및 컨트롤을 지원함으로써 고 충실도, 저 대역으로 Encoding 된 멀티미디어 스트림을 지원합니다. 또한 Windows CE 는 게임이나 다른 고성능 멀티미디어 응용 프로그램을 작성하기 위한 저급 응용 프로그래밍 인터페이스(API) 집합인 DirectX 8 를 지원합니다

Kim seolhyang 2008-05-27 2/56

Page 4: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

강력한 개발환경 및 도구의 지원 Internet Browser

IE 6.0 기반의 Windows CE 용 Internet Explorer Browser 가 포함 되어 있으며 Blocking pop-up 과 RPC, TV lens 기능을 지원합니다.

International12 개국의 언어 관련 font 와 IME 를 지원합니다

2. Windows CE 개발 과정

개발 단계 내용

부트로더 포팅윈도우 임베디드 시스템에서 부트로더의 역할은 임베디드 시스템이 동작을 하고 운영체제를 로드하는 환경을 만들어 주는 것이다. 또한 윈도우 임베디드 운영체제를 디버깅하는 환경을 제공해 준다.

OAL 포팅윈도우 CE 운영체제와 임베디드 시스템 간을 연결해주는 포팅 레이어인 OAL 포팅. 인터럽트, 타이머, 메모리 관련 처리 부분 포팅하게 된다.

디바이스 드라이버 포팅 및 개발디스플레이를 위한 LCD 드라이버, 오디오 드라이버, 스토리지 드라이버, 키패드 드라이버 등 각종 드라이버 포팅 작업이 이루어진다. 대부분의 드라이버가 BSP라는 형태로 제공되지만 실제 제품구현 과정에는 추가 구현 작업들이 많이 필요하다.

통합개발된 운영체제 부분이 잘 동작 하는지 검증하기 위한 통합작업. 통합된 운영체제 이미지는 각 드라이버들이 충돌하는지 검증용으로 사용

SDK 배포SDK 는 개발된 운영체제에서 동작하는 응용프로그램을 만들기 위한 툴이다. 윈도우 임베디드 운영체제가 표준을 따르고 있지만 보드에 차이점 및 사용자 고유 기능은 이용하기 위해서는 SDK 를 통하여 만들어야 한다.

Application 개발배포된 SDK 를 이용하여 임베디드 시스템을 위한 어플리케이션을 개발한다. 통상 응용프로그램과 운영체제 개발은 독립적으로 이루어진다.

재통합지금까지 개발된 드라이버, OAL 부분, 응용 프로그램을 통합하여 하나의 운영체제 이미지로 만드는 작업을 하게 된다. 이 과정 중 개발된 각 모듈의 문제점을 확인하고 통합작업이 이루어지게 된다.

CETK 테스트 및 동작 검증

CETK(CE Testkit)는 개발된 윈도우 임베디드 시스템이 정상적으로 동작하는지 검증하는 자동화된 검증 툴이다. 기본적인 입력/출력 테스트에서부터 파일시스템의 안정성, 네트워크 테스트 등을 통해 개발된 운영체제가 정상 동작하는지 검증하는 도구이다. 회사에 따라서는 테스트 항목을 추가 삭제 할 수 있다. 윈도우 임베디드 운영체제를 사용하는 회사에서 검증해야 할 기본적인 테스트이다.

릴리스만들어진 최종 운영체제 이미지는 구입한 라이선스 코드를 입력해 릴리스 한다. 이 때 만들어진 운영체제 이미지는 최종 생산에 사용할 수 있다. 최종 제품은 구입한 라이선스 스티커를 제품에 장착하고 출시하게 된다.

3. 필요 프로그램

Windows XP Service Pack 2Visual Studio 2005 SP1 Update for Vista (Vista 일 경우에만) Windows Embedded CE 6.0 Evaluation EditionVisual Studio 2005 Professional (※ standard 버전에서는 추가되지 않음)Windows Embedded CE 6.0 Platform Builder Service Pack 1.msiWindows XP Professional Service pack 2Kim seolhyang 2008-05-27 3/56

Page 5: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

Windows Embedded CE 6.0 R2위의 모든 프로그램은 마이크로소프트 홈페이지에서 다운로드 가능하다.

평가 판 다운로드: Windows Embedded CE 6.0 Evaluation EditionWindows Embedded CE 6.0 Platform Builder Service Pack 1.msiWindows Embedded CE 6.0 R2

Kim seolhyang 2008-05-27 4/56

Page 6: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

4. 설치 과정

1. Windows Embedded CE 6.0 Evaluation Edition

설치에 필요한 파일들을 다운로드 한다

설치 준비를 한다.

설치에 필요한 디스크 공간을 체크 한다. 체크가 끝날 때까지 대기한다.

Kim seolhyang 2008-05-27 5/56

Page 7: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

설치할 내용을 선택하고 타깃보드의 BSP파일도 같이 선택한 후 Next 를 클릭하여 진행한다.

설치가 진행된다. 진행이 완료되면 Next 를 클릭하여 진행한다.

Kim seolhyang 2008-05-27 6/56

Page 8: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

Finish 를 클릭하여 설치를 마친다.

2. Windows Embedded CE 6.0 Platform Builder Service Pack 1.msi

Kim seolhyang 2008-05-27 7/56

Page 9: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

설치에 필요한 디스크 공간을 마친 후 Next 를 클릭하여 진행한다.

약관 동의 후 진행한다

Kim seolhyang 2008-05-27 8/56

Page 10: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

설치 과정을 시작 한다.

설치가 진행 중이다.

Kim seolhyang 2008-05-27 9/56

Page 11: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

설치에 필요한 요구치를 체크한다. 체크가 끝날 때까지 대기한다.

Next 를 클릭하여 진행한다.

Kim seolhyang 2008-05-27 10/56

Page 12: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

약관에 동의하고 Next 를 클릭하여 진행한다.

Install 을 클릭하여 설치과정을 시작한다.

Kim seolhyang 2008-05-27 11/56

Page 13: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

설치가 진행되고 완료되면 다음 화면이 나타난다.

Finish 를 클릭하여 설치를 마친다.

Kim seolhyang 2008-05-27 12/56

Page 14: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

5. Windows Embedded CE R2 설치하기

설치에 필요한 파일들을 다운로드 한다.

설치 준비를 한다

설치에 필요한 디스크 공간을 체크 한다. 체크가 끝날 때까지 대기한다.

Kim seolhyang 2008-05-27 13/56

Page 15: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

약관 동의 라디오 버튼을 선택한 후 Next 로 버튼을 눌러 계속 진행 한다.

(메시지 박스가 뜰 경우 10 분 정도 기다리면 다음으로 진행 할 수 있다.)

설치할 BSP를 선택한 후 다음으로 진행한다

Kim seolhyang 2008-05-27 14/56

Page 16: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

설치 시작을 위해 다음으로 진행 한다

설치를 진행한다. (소요 시간이 길다. 약 100 분)

Kim seolhyang 2008-05-27 15/56

Page 17: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

설치를 마친다

6. Win CE OS 만들기

Platform Builder(PB)를 이용해서 OS 를 만든다.

플랫폼 빌더는 Windows CE 의 OS 를 구성하고, 디바이스 드라이버 및 응용프로그램 개발, OS 디버깅 및 각종 테스트를 할 수 있는 GUI 기반의 통합개발환경(IDE)을 제공하는 툴이다.

1. 시작 -> 프로그램->Microsoft Visual studio 2005 를 실행한다.2. 2, 메인 화면에서 File->New Project 를 실행하여 새로운 프로젝트를 시작한다.

Kim seolhyang 2008-05-27 16/56

Page 18: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

3. 새 프로젝트를 설정하는 대화 창이 나타나면 “기타 프로젝트 형식”에서 Platform Builder for CE 6.0 을 선택한 후 OS Design 을 선택한다. 프로젝트 이름과 위치, 솔루션 이름을 기입하고 확인을 누른다

4. Project Setting Start: 프로젝트 설정 마법사가 시작된다. 다음을 선택한다

Kim seolhyang 2008-05-27 17/56

Page 19: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

.5. BSP Select : Device Emulator ARMV4I 를 선택한다. (만들고자 하는 보드에 알맞은 BSP 를 선택하면

된다.)

6. Design Templates : 장치 디바이스를 선택합니다. 만들고자 하는 단말기에 가까운 항목을 선택한다.

Kim seolhyang 2008-05-27 18/56

Page 20: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

7. Design Template Variants : 목적에 맞는 설정을 선택합니다.

- Mobile Handheld :    PDA 를 개발할 수 있는 ,설정 입니다. - Enterprise Web Pad :    Web Pad 환경의 설정으로 touch display , Wireless networking feature 들이 포함되게 됩니다.

Kim seolhyang 2008-05-27 19/56

Page 21: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

8. Applications Media: OS 이미지에 같이 포함할 응용 프로그램들을 선택하는 항목이다.

Networking Communications: 네트워크 환경에 네트워크 컴포넌트를 추가하는 항목이다.

Kim seolhyang 2008-05-27 20/56

Page 22: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

9. OS Design Project Wizard Complete: 프로젝트 설정 마법사를 끝마친다.

10. 생성된 프로젝트 화면

11. Sysgen: 마우스 오른쪽을 눌러 Advanced Build Commands -> Sysgen 을 실행해서 OS 이미지를 빌드한다

Kim seolhyang 2008-05-27 21/56

Page 23: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

Sysgen 이 실행 되면 Output 화면 하단 오른쪽에 진행 과정이 나타난다.(20 분 정도 소요)

Kim seolhyang 2008-05-27 22/56

Page 24: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

1. Sysgen(System Generation) 이란?

1. Sysgen추가/수정 된 컴포넌트들을 Sysgen 과정을 통해 OS 에 포함하고 (SYSGEN) (어떤 것이 OS 에 필요한지 PB 에 알려주는 과정) 수정된 소스들(BSP쪽만)을 빌드하여 OS 에 포함된 결과물들을 만들고 (BUILD) 만들어진 결과물들을 Release폴더에 복사하고 (BUILDREL) *.reg, *.bib 등등을 Merge 하여 reginit.ini, ce.bib 등을 만들고 (MAKEIMG) 이를 이용해 OS 이미지를 만드는 과정까지 수행한다. (ROMIMAGE) 2. Clean Sysgensysgen 메뉴와 차이가 있다면 결과물들을 Clean 하고 sysgen 한다는 것이다.BSP쪽 소스 수정 유/무에 관계없이 BSP 결과물들을 다시 빌드 한다. 

3. Build and sysgenPublic폴더 아래에 "필요한 부분"들 중 수정된 소스를 빌드 하고 sysgen 과정을 수행한다..sysgen 이 먼저 일어난 후 BUILD 과정 중에서 public폴더의 빌드 한다.( !!! 주의사항. Private폴더는 "절대!!!" 수정금지. 5.0 의 경우 build and sysgen 과정에서 private 도 검사하는데 소스 수정이 되어있으면 빌드 되어 버리면서 에러가 날 수 있다.)  

4. Rebuild and Clean Sysgen.Build and sysgen 에 Clean 이 추가된 것으로, private 이라는 폴더가 전부 공개되지 않았을 가능성이 높아서 그 결과물까지 Clean 되어서 빌드를 시도하고 에러의 가능성이 있어 추천하지 않는 메뉴.public 의 모든 소스가 빌드 되기에 시간이 많이 걸린다. 5. Build Current BSP and Subprojects6. Rebuild Current BSP and Subprojects 이 외에도 Open Release Directory in Build Window 도 많이 쓰는 빌드 명령 중 하나이다.직접 명령을 입력해서 빌드 하는 메뉴로 sysgen 을 하더라도 SYSGEN 과정과 BUILDREL 과정 등등 때문에 시간이 많이 걸리기 때문에 간단한 소스 수정이나 레지스트리 수정, bib 수정의 경우는 이 메뉴를 이용해 빌드 시간 단축이 가능하다.

Platform Builer 로 개발자가 원하는 구성요소로 Windows CE OS 의 빌드가 완료되면, "NK.bin"이라는 파일이 최종 생성되는데, 이 NK.bin 파일이 Windows CE OS 이다.

일반적으로 NK.bin 을 Windows CE OS Run-Time Image 라고 부르며, 이 파일 안에는 Windows CE 를 구성하는 Kernel 과 System Processor 들 그리고 Device driver, API, Application 들이 포함되어있다.

NK 는 New Kernel 이라는 뜻으로 Microsoft 가 Windows CE 를 위한 새로운 커널을 개발하여 사용한다는 의미가 담겨 있다.

Kim seolhyang 2008-05-27 23/56

Page 25: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

빌드가 완료 되면 만들어진 OS 이미지를 에뮬레이터에 전송한다.먼저 Target Board 에 OS 이미지를 전송하기 위해 Target Board 와의 연결을 해야 한다. Target -> Connectivity Option 으로 Target Board 와의 연결 설정을 한다.

 연결 설정에서 다음과 같이 설정을 한다.

Kim seolhyang 2008-05-27 24/56

Page 26: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

Target Board 와 연결이 되면 다운로드 대화 창이 뜨면서 다운로드 진행 사항을 보여준다. (Emulator 로서 구동하는 것이라 사용하는 PC 의 메모리에 다운로드 한다.) 출력 창에 Attach Device 하는 과정 메시지가 출력 되고 OS 전송이 끝나면 부팅되어 다음과 같은 화면을 볼 수 있다.

Kim seolhyang 2008-05-27 25/56

Page 27: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

7. OS 디자인에 응용 프로그램 추가하기

1. 사용자 정의 레지스트리 키 추가하기solution Explorer 에서 Subproject폴더 위에 마우스 오른쪽 버튼을 클릭하고 Add New Subproject 를 선택한다.

Subproject 마법사가 보여지고, 여러 서브 프로젝트 형태 중 하고자 하는 형태와 맞는 것을 선택해 서브 프로젝트 명을 입력한다. Next 를 클릭해 계속 진행합니다. (여기서는 WCE Application 을 선택)

Kim seolhyang 2008-05-27 26/56

Page 28: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

추가한 응용 프로그램의 형태를 선택한다. (여기서는 Hello World 를 선택해 기본적인 구성을 살펴본다.)Class View 탭으로 옮겨 작성한 클래스를 확장하여 응용 프로그램 레지스트리를 등록하는 정보를 추가해야 한다. WM_CREATE 메시지에 다음과 같이 추가한다.

case WM_CREATE:{ HKEY hKey; LONG lRect; TCHAR szName[256]; DWORD dwType, dwSize; dwSize = (256 * sizeof(TCHAR)); lRect = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L”SOFTWARE\\Microsoft\\DemoApp”, 0,0, &hKey); if(ERROR_SUCCESS == lRect) { RegQueryValueEx(hKey, L”Name”, NULL, &dwType, (LPBYTE)szName, &dwSize); MessageBox(hWnd, szName, L”Name frm Registry”, MB_OK);

}else{

MessageBox(hWnd, L”Name not found.”, L”Name from Registry”, MB_OK|MB_ICONINFORMATION); RegCloseKey(hKey); } return 0; break;

Kim seolhyang 2008-05-27 27/56

Page 29: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

X 표시를 누르면 메시지를 나타낼 WM_CHAR 메시지 구현을 위해 다음과 같이 삽입 한다.

case WM_CHAR: if(wParam == ‘x’) { MessageBox(hWnd, L”Hello World”, L”Hello World”, MB_OK); }

break;

윈도우에 “Hello World” 를 나타내기 위해 WM_PAINT 메시지를 수정한다.

case WM_PAINT: hdc=BeginPaint(hWnd, &ps); //TODO: Add any drawing code here… RECT rt;

GetClientRect(hWnd, &rt); DrawText(hdc, szHello, _tcslen(szHello), &rt, DT_CENTER);EndPaint(hWnd, &ps);break;

2. 플랫폼에 레지스트리 정보 추가하기

플랫폼에서 사용자 정의 레지스트리 키를 읽을 수 있도록 사용하기 위해 키를 추가 시킨다.solution Explore 의 Subject 에서 프로젝트 명.reg 파일을 더블 클릭한다.RegEdit 가 나타나고, 다음의 키를 추가한다.[HKEY_LOCAL_MACHINE]에 마우스 오른쪽 버튼을 눌러 New|Key 를 선택한다.SOFTWARE 라는 새로운 키를 만들고 그곳에서 다시 마우스 오른쪽 버튼을 눌러서 Microsoft 키를 생성한다. Microsoft 에서 마우스 오른쪽 버튼을 눌러 New|Key 를 선택하여 새로운 키 이름을 입력한다.여기서는 DemoApp 라고 생성했다.DemoApp 에서 마우스 오른쪽 버튼을 눌러 New|String Value 를 선택 한다.Name 이라는 이름으로 새로운 문자열 값을 입력한다.Name 을 선택하고 Alt+Enter 키를 누르면 속성 창이 나오고, Data field 에 값을 입력한다.변경한 레지스트리를 적용하기 위해 File|Save 프로젝트 명.reg 를 선택한다.

Kim seolhyang 2008-05-27 28/56

Page 30: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

3. 외부 이미지(그림) 파일 포함 시키기

운영 체제 안으로 사용자 정의 파일을 포함 시키기 위해서 BIB(Binary Image Builder) 파일을 수정한다. 솔루션의 서브 프로젝트를 확장하여 Parameter Files 폴더의 서브프로젝트 명. bib 를 더블 클릭한다.비트맵이 이미지에 포함될 수 있도록 FILES 라인 아래에 다음과 같이 추가한다.(RegApp 라는 서브 프로젝트를 예로 작성된 예제)

수정한 내용을 저장한다. (File|Save 서브 프로젝트 명.bib)Flat Release 디렉터리로 그 비트맵 파일을 복사하기 위해 배치 파일을 편집한다.

서브 프로젝트 아래에 있는 postlink.bat 파일을 더블 클릭한다.다음의 내용을 포함시킨다.

copy “C:\PBLab\Autumn.bmp””%FLATRELEASEDIR%”

수정한 내용을 저장한다. (File|Save Postlink.bat)

Kim seolhyang 2008-05-27 29/56

MOUDLES RegApp.exe $(_RLATRELEASEDIR)\RegApp.exe NKFILESimg.bmp $(_F:ATRELEASEDIR)\img.bmp NK

Page 31: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

4. 서브 프로젝트 응용 프로그램 사용하기운영체제가 에뮬레이터에 로딩 완료 후 원격으로 응용 프로그램을 실행할 수 있도록 Target Control 을 사용한다. (Attach) Visual Studio 2005 에서 Target|Target Control 을 선택하여 다음과 같이 입력한다. (Target|Run 메뉴를 사용할 수 있다.)

다시 에뮬레이터로 돌아와 프로그램이 실행되는 것을 확인 한다.

Message Box 를 닫기 위해 OK 버튼을 클릭한다.

Kim seolhyang 2008-05-27 30/56

Page 32: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

8. Windows CE Application 개발하기

1. Windows CE SDK 추가하기해당 제조사에서 제공받은 SDK 의 msi 파일을 설치합니다.

Next 를 클릭하여 진행한다.

Kim seolhyang 2008-05-27 31/56

Page 33: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

Accept 를 선택하고 Next 를 클릭하여 진행한다.

적당한 이름과 조직이름을 입력하고 Next 를 클릭하여 진행한다.

Kim seolhyang 2008-05-27 32/56

Page 34: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

설치할 목록을 선택하려면 Custom 을 전체 설치를 하려면 Complete 를 선택하여 진행한다.

Custom 을 눌렀을 경우 설치할 모듈의 내역이 나타난다. 적당히 선택 후 Next 를 클릭하여 진행한다.

Next 를 클릭하여 인스톨 과정을 시작한다.

Kim seolhyang 2008-05-27 33/56

Page 35: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

설치가 진행되고 완료 되면 다음 화면이 나타난다.

Finish 를 클릭하여 설치를 완료한다.

2. Windows CE Application 개발하기Kim seolhyang 2008-05-27 34/56

Page 36: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

스마트 장치 프로젝트 타입을 선택하고 Win32 스마트 장치 프로젝트를 선택한다.

프로젝트 명 입력과 위치 선택하고 확인을 눌러 진행한다.

다음을 눌러 진행한다.

Kim seolhyang 2008-05-27 35/56

Page 37: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

설치된 SDK 의 목록이 나타난다. 오른쪽 리스트로 사용할 SDK 를 선택한다. 사용하려는 SDK 가 목록에 없으면 제조사에 문의해 SDK 를 다운 받아서 설치하면 목록에 나타나게 된다.

어플리케이션 설정을 한다. 여기서는 Windows application 을 선택하여 예제를 만들어 본다.

기본 생성된 프로젝트의 파일들은 다음과 같다.

Kim seolhyang 2008-05-27 36/56

Page 38: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

윈도우 프로그램의 기본 구조와 같이 WinMain 함수에서 윈도우의 생성 및 초기화를 하고 WndProc에서 메시지를 처리한다.

Parameter 기능

hInstance 인스턴스hPrevInstance 같은 프로그램의 이전 인스턴스 (NULL)lpCmdLine 실행 시 파라미터nCmdShow 화면의 출력 상태

SW_HIDE 숨기기SW_SHOW 보이기SW_SHOWNA 활성화 변경 없이 보이기SW_SHOWNOACTIVATE 활성화 변경 없이 최근 상태로SW_SHOWNORMAL 보이기(원래 크기로)

Kim seolhyang 2008-05-27 37/56

Page 39: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

InitInstance: 인스턴스 초기화윈도우의 프레임 윈도 생성과 초기화윈도우 클래스 구조체에 클래스 생성 및 등록

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow){ HWND hWnd; //윈도우 핸들 TCHAR szTitle[MAX_LOADSTRING]; // title bar text TCHAR szWindowClass[MAX_LOADSTRING]; // main window class name

g_hInst = hInstance; // Store instance handle in our global variable

// 특수 컨트롤을 초기화하기 위해 응용 프로그램을 초기화하는 동안 한 번 호출해야 합니다 SHInitExtraControls();

LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_TEST, szWindowClass, MAX_LOADSTRING);

//If it is already running, then focus on the window, and exit hWnd = FindWindow(szWindowClass, szTitle); if (hWnd) { // set focus to foremost child window // The "| 0x00000001" is used to bring any owned windows to the foreground and // activate them. SetForegroundWindow((HWND)((ULONG) hWnd | 0x00000001)); return 0; }

if (!MyRegisterClass(hInstance, szWindowClass)) { return FALSE; } // 프레임 윈도우 생성 hWnd = CreateWindow(szWindowClass, szTitle, WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);

Kim seolhyang 2008-05-27 38/56

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){

MSG msg; // 메시지 구조체// Perform application initialization:if (!InitInstance(hInstance, nCmdShow)) {

return FALSE;}// 단축키에 해당 하는 액셀레이터를 가져오는 부분HACCEL hAccelTable;hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_HELLO_CE));

// Main message loop: : 메시지 큐로부터 메시지를 받아와 해당 윈도우 프로시절 보낸다.while (GetMessage(&msg, NULL, 0, 0)) {

// 명령 메시지와 윈도우 메시지 처리 구분if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) {

TranslateMessage(&msg); // 메시지 번역DispatchMessage(&msg); // 메시지를 해당 윈도우 프로시저로 보내기

}}return (int) msg.wParam;

}

Page 40: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

if (!hWnd) { return FALSE; }

// When the main window is created using CW_USEDEFAULT the height of the menu bar (if one // is created is not taken into account). So we resize the window after creating it // if a menu bar is present if (g_hWndMenuBar) { RECT rc; RECT rcMenuBar;

GetWindowRect(hWnd, &rc); GetWindowRect(g_hWndMenuBar, &rcMenuBar); rc.bottom -= (rcMenuBar.bottom - rcMenuBar.top); MoveWindow(hWnd, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, FALSE); }

// 프레임 윈도우를 화면에 표시 ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd);

return TRUE;}

//윈도우클래스 생성 및 등록ATOM MyRegisterClass(HINSTANCE hInstance, LPTSTR szWindowClass){

WNDCLASS wc;

//윈도우 가로 방향 변동 시 새로 그림/ 윈도우 세로 방향 변동 시 새로 그림 wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = WndProc; // 윈도우 기본 메시지 프로시저wc.cbClsExtra = 0; // 클래스 데이터영역wc.cbWndExtra = 0; // 윈도우데이터영역wc.hInstance = hInstance; // WinMain 을 통해 전달받은 인스턴스 핸들wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_HELLO_CE)); //아이콘 설정wc.hCursor = 0; //커서 wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); // 배경 브러시 핸들wc.lpszMenuName = 0; //메뉴 이름wc.lpszClassName = szWindowClass; // 윈도우 클래스 명return RegisterClass(&wc); // 윈도우 클래스의 등록

}

WndProc : 윈도우 메시지의 처리

각 메시지 별로 처리 내용이 작성되고, 발생된 메시지가 큐에 저장되어 처리 순서가 되었을 수행된다.

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ int wmId, wmEvent; PAINTSTRUCT ps; //페인트 구조체 HDC hdc; // 디바이스 콘텍스트

static SHACTIVATEINFO s_sai; // 커널에 들어온 메시지를 switch문을 통해서 처리 switch (message) // 윈도우가 명령 메시지가 온 경우 { case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDM_HELP_ABOUT: DialogBox(g_hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, About); break; case IDM_OK:Kim seolhyang 2008-05-27 39/56

Page 41: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

SendMessage (hWnd, WM_CLOSE, 0, 0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); } break; case WM_CREATE: //윈도우가 처음 생성 메시지가 온 경우 // 이후 생략

예제 프로그램

// Hello_CE.cpp

#include "stdafx.h"#include "Hello_CE.h"#include <windows.h>#include <commctrl.h>

#define MAX_LOADSTRING 100

// Global Variables:HINSTANCE g_hInst; // current instanceHWND g_hWndMenuBar; // menu bar handle

// Forward declarations of functions included in this code module:ATOM MyRegisterClass(HINSTANCE, LPTSTR);BOOL InitInstance(HINSTANCE, int);LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);

LRESULT CALLBACK UserDialogProc(HWND hDlg UINT message, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow){

MSG msg;

g_hInst = hInstance;HACCEL hAccelTable;hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_HELLO_CE));

DialogBox( g_hInst, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)UserDialogProc);

r eturn (int) msg.wParam;}

// Message handler for about box.INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){

switch (message){case WM_INITDIALOG:{

// Create a Done button and size it. SHINITDLGINFO shidi;shidi.dwMask = SHIDIM_FLAGS;shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN |

SHIDIF_EMPTYMENU;shidi.hDlg = hDlg;SHInitDialog(&shidi);

}return (INT_PTR)TRUE;

case WM_COMMAND:if(LOWORD(wParam) == IDOK){

EndDialog(hDlg, LOWORD(wParam));return TRUE;

}break;

case WM_CLOSE:EndDialog(hDlg, message);return TRUE;}

Kim seolhyang 2008-05-27 40/56

Page 42: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

return (INT_PTR)FALSE;}

#if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)BOOL UserDialogInit(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){

SetWindowLong(hDlg, DWL_USER, lParam);

SHINITDLGINFO shidi;

shidi.dwMask = SHIDIM_FLAGS;shidi.dwFlags = SHIDIF_SIPDOWN | SHIDIF_DONEBUTTON | SHIDIF_FULLSCREENNOMENUBAR;shidi.hDlg = hDlg;if (!SHInitDialog(&shidi)){

EndDialog(hDlg, E_FAIL);return FALSE;

}

SetWindowText(hDlg, L"다이얼로그");return TRUE;

}#elseBOOL UserDialogInit(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){

SetWindowText(hDlg, L"다이얼로그");return TRUE;

}#endif

LRESULT CALLBACK UserDialogProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){

HDC hdcDlg;PAINTSTRUCT ps;

WCHAR szHello[17]=L"Hello Win CE";

switch (message){case WM_INITDIALOG:{ SetWindowText(hDlg, L"Test Dialog"); return true;}return TRUE;case WM_COMMAND:{ if(LOWORD(wParam) == IDCANCEL || LOWORD(wParam) == IDOK) { DestroyWindow(hDlg); }}break;case WM_PAINT: hdcDlg = BeginPaint(hDlg, &ps);

RECT rt; GetClientRect(hDlg, &rt); DrawText(hdcDlg, szHello, _tcslen(szHello), &rt, DT_SINGLELINE | DT_VCENTER | DT_CENTER);

EndPaint(hDlg, &ps);

break;case WM_KEYUP:case WM_LBUTTONUP: EndDialog(hDlg, LOWORD(NULL)); break;}return FALSE;

}

코드 작성이 완료된 후 빌드 및 실행을 하면 다음과 같은 화면이 나타난다.

Kim seolhyang 2008-05-27 41/56

Page 43: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

예제를 PDA SDK 를 선택하여 진행하였으므로 자동으로 PDA 스킨이 입혀져 가상 OS 에서 실행된 응용 프로그램의 모습을 볼 수 있다.

9. 디버깅 하기

1. visual studio 2005 디버깅

중단점(break Point), 와 지역, 자동 변수 조사 탭, 호출 스택을 이용하여 다른 Win32 어플리케이션을 개발할 때 디버깅하는 방법을 적용하여 디버깅 할 수 있다.

2. 디버그 메시지 (디버그 존)

문제에 따라 디버그 존을 설정해 어떠한 메시지를 중점적으로 볼 것인지를 선택하고 출력된 메시지를 추적해 나가면서 문제점을 추적하는 방법으로 비주얼 스튜디오의 디버깅 메시지와 함께 OS 이미지 내에 포함 되어서도 유용한 디버깅 정보를 제공한다. 디버그 존을 사용하면 특정 그룹의 디버그 메시지가 출력되게 또는 출력되지 않게 제어 할 수 있고, 플랫폼 개발자들이 많이 사용한다. 디버그 존의 매크로가 디버그 메시지를 선언 할 때 플랫폼 빌드로 컴파일 할 때만 모듈에 메시지를 삽입한다.

모듈의 모든 디버그 메시지를 구분하는 그룹은 최대 16 개까지 정의한다.

디버그 존 메시지 그룹 선언

#define ZONE_ERROR DEBUGZONE (0)#define ZONE_WARNING DEGUGZONE (1)#define ZONE_INIT DEBUGZONE (2)

코드 내에 디버그 메시지 삽입하기

Kim seolhyang 2008-05-27 42/56

Page 44: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

DEBUGMSG (ZONE_ERROR, (printf 표현 식));첫 번째 매개변수는 선언한 16 개의 메시지 존 중의 하나이다.

디버그 메시지를 삽입한 다음 DBGPARAM 구조체 타임으로 dbCurSttings 라는 이름의 변수를 정의 해야 한다.

typedef struct _DBGPARAM{

WCHAR lpszName[32]; // 디버그 이름WCHAR rglpszZones[16][32]; // 디버그 존에 해당하는 문자열ULONG ulZoneMask; // 디폴트로 사용 가능하게 설정되는 디버그 존을 설정하는 비트마스크

} DBGPARAM, *LPDBGPARAM;

그 후 실행 시간에 디버그 존을 사용되게 하려면 다음 매크로를 사용하여 존을 초기화 해야 한다.

DEBUGREGISTER (HANDLE hInstance);

매개변수는 모듈의 인스턴스 핸들이며, 일반적으로 WinMain()의 시작 부분 (DLL 일 경우 LibMain)에서 호출한다.

디버그 존 출력 메시지는 포트로 전송된다. 디버그 포트는 소비자용 제품에서 일반적으로 사용할 수 없고, COM1 포트가 주 직렬 포트가 아닐 경우 전환하여 사용할 수 있다. 이것은 OEM 에 따라서 달라서 OEM 에 문의해야 한다..

3. Kernel Debugger

Remote Tool 을 사용하기 전 준비 사항

PB 의 Target|Connecitvity 의 Core Service Settings 에서 KITL 이 사용 가능하도록 설정해야 한다. Enable KITL on device boot 에 체크 상태를 확인하고 Apply 를 클릭하고 Attach 를 진행한다.

에뮬레이터에 운영체제가 부팅 된 후 Target 메뉴에서 원하는 툴을 선택한 후 연결 설정을 한다. Remote Tool을 사용하기 위해서는 Transport 를 KITL Transport for Windows CE 로 선택해야 한다.

Kim seolhyang 2008-05-27 43/56

Page 45: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

.

OK 를 클릭하면 연결과정을 거쳐 kernel Tracker 화면이 나타난다

[연결 설정 시 ActiveSync 사용 연관 표]

Transprot Startup server Requires serial connection with ActiveSync

ActiveSyncCESH YesActiveSync YesManual server Yes

TCP/IPCESH NoActiveSync YesManual server No

PPPCESH YesActiveSync YesManual server Yes

KITLCESH NoActiveSync YesManual server No

[Remote Kernel Tracker 의 실행 화면]

Kim seolhyang 2008-05-27 44/56

Page 46: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

왼쪽에 모듈 리스트들이 나열되고 선택하면 시간 대 별로 이벤트와 프로세스 상태 그래프가 나타난다.이벤트가 일어나면 작은 아이콘이 표시되는데 이는 오른 편에 나열 되어 있는 내역을 참조하면 된다.Kernel Tracker 는 Data Abort 가 발생한 시점의 모듈과 관계를 추적하는 데 유용하고, Memory Leak 을 디버깅 할 수 있다. 메모리 할당과 해지를 이벤트 형태로 볼 수 있기 때문에 어떠한 부분에서 메모리 해지가 일어나지 않아서 문제가 생기는지 확인할 수 있다.

4. 그 외 Remote Tool

[Remote File Viewer]

연결된 장치에 있는 파일들을 탐색할 수 있다.

[Remote Registry Edit]

Kim seolhyang 2008-05-27 45/56

Page 47: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

연결된 장치의 OS 의 레지스트리 정보를 볼 수 있다.

[Remote Spy]

연결된 장치의 윈도우의 목록과 발생 메시지를 알아보는데 사용한다.

[Remote Heap Walker]

Kim seolhyang 2008-05-27 46/56

Page 48: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

연결된 장치의 프로세스의 힙 식별자와 프로세스 아이디가 내역을 나타낸다.

[Remote System Information]

연결된 장치의 속성 값들을 확인한다.

[Remote Process Viewer]

Kim seolhyang 2008-05-27 47/56

Page 49: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

연결된 장치에서 현재 실행중인 프로세스와 쓰레드의 리스트를 나타냅니다.

Kim seolhyang 2008-05-27 48/56

Page 50: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

10. Windows CE BSP 추가하기

만약 x86 계열의 타겟보드로 사용할 경우 BSP 를 다운 받아서 사용해야 한다.

다운로드 주소: http://www.viaarena.com/

드라이버 메뉴에 Microsoft Windows 를 선택한다.

Windows Embedded CE SP2 를 선택한다.

Kim seolhyang 2008-05-27 49/56

Page 51: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

화면 중앙에 VIA x86 Board Support Package 다운로드 링크를 볼 수 있다. 링크를 클릭하여 개발할 보드에 맞는 것을 선택하여 다운로드 한다.

다운 로드 받은 BSP 를 설치한다.

Kim seolhyang 2008-05-27 50/56

Page 52: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

Next 를 클릭해 진행한다.

설치 경로를 선택하고 Next 를 클릭해 진해한다.

Kim seolhyang 2008-05-27 51/56

Page 53: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

Next 를 클릭해 진행한다.

Next 를 눌러 설치를 시작한다.

Kim seolhyang 2008-05-27 52/56

Page 54: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

설치가 진행되고 있다. 완료되면 Next 를 클릭해 진행한다.

Close 를 클릭하여 설치과정을 완료한다.

Kim seolhyang 2008-05-27 53/56

Page 55: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

설치가 끝나면 Platform Builder 에서 새 프로젝트를 시작할 때 다음과 같이 추가된 BSP 목록을 볼 수 있다.

11. 참조 사이트

Tong - 거부기 .. 님의 Win CE 통

Windows CE 개발 단계

Windows CE 와 Platform Builder

http://www.zdnet.co.kr/builder/platform/windows/0,39031685,39162125,00.htm

http://cafe.naver.com/wincepro.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=12093

http://msdn.microsoft.com/en-us/embedded/aa731296.aspx

http://www.zdnet.co.kr/builder/platform/windows/0,39031685,39165417,00.htm

http://blog.naver.com/jay_korea?Redirect=Log&logNo=30006016769

http://blog.naver.com/pdasuda?Redirect=Log&logNo=70015260945

http://www.iwecom.co.kr/ce/guide.asp

[ 용어 참조 ]

Windows CE - Win CEPocket PC - PPCWindows Mobile - WM

Kim seolhyang 2008-05-27 54/56

Page 56: Windows Embedded CE 6.0cfs7.tistory.com/upload_control/download.blog?fhandle=... · Web viewWindows CE 소개 Windows CE는 메모리를 적게 차지하는 차세대 스마트 모바일

Windows Embedded CE 6.0 위즈솔루션 네트워크서비스

Platform Builder - PBHand held PC - HPCOEM Adaptation Layer - OAL하위 레벨의 하드웨어 플랫폼에 적용된 라이브러리로서 PC 에서 BIOS 와 비슷한 역할Kernel 로부터 하드웨어 아키텍처를 추상화함.

Board Support Package - BSPOAL, Drivers, 부트로더, 하드웨어 설정 파일

CatalogOS, 모듈 등을 포함하는 container

OS Design 각 catalog items, BSP, 사용자 프로젝트 등의 전체 집합체

Binary Image Builder – BIBKernel Independent Transport Layer – KITLSystem Generation - Sysgen

Kim seolhyang 2008-05-27 55/56