Windows ce net development environment
1 / 145

Windows CE .NET Development Environment - PowerPoint PPT Presentation

  • Uploaded on

Windows CE .NET Development Environment. 경희대학교 컴퓨터공학과 조진성. 목차. Overview of Windows CE .NET Serial Number 받기 Platform builder .NET 4.2 설치 Microsoft Embedded C++ 4.0 설치 JFlashMM 설치 EBOOT download Handheld device 만들기 Application 개발. Overview of Windows CE .NET.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Windows CE .NET Development Environment' - gudrun

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Windows ce net development environment

Windows CE .NET Development Environment

경희대학교 컴퓨터공학과



  • Overview of Windows CE .NET

  • Serial Number 받기

  • Platform builder .NET 4.2 설치

  • Microsoft Embedded C++ 4.0설치

  • JFlashMM 설치

  • EBOOT download

  • Handheld device만들기

  • Application 개발

Overview of windows ce net1
Overview of Windows CE .NET

  • Windows CE .NET: Design Goals

  • What is New in Windows CE .NET?

  • Basic Configurations

  • Target Hardware Support

Windows ce net design goals
Windows CE .NET: Design Goals

  • Modular and compact operating system

    • Highly modular

    • Customized to meet to the specific product requirements of a range of devices

    • Only the required modules can be included in the operating system image

  • Wireless and wired connectivity

    • Allows you to build scalable wireless platform

      • Flexibly connect mobile devices into existing infrastructures

    • Provide broad wireless support for PAN(Personal Area Network)s, LANs, and WANs

      • Including Bluetooth, Wireless LAN – Zero Configuration(802.11) Support

    • PAN : Bluetooh나 IrDA(적외선)이용한 근거리 개인 네트웍

Windows ce net design goals1
Windows CE .NET: Design Goals

  • Robust real-time capabilities

    • Hard RTOS kernel support

    • Efficiently enabling the most demanding real-time embedded designs

  • Rich multimedia and multilingual support

    • Provide the latest multimedia experiences

    • Allow you to efficiently build localized embedded devices

  • Strong development tool support

What is new in windows ce net
What Is New in Windows CE .NET?

  • Internet Explorer 5.5 for CE

  • Wireless support

  • Multimedia

  • Customizable UI

  • Security Services

  • Real-time collaboration and communication

  • Better multi-language support

  • ClearType

Basic configurations
Basic Configurations 이란?

  • There are 13 different starting points to develop your platform

  • Each one targets a particular class of device

  • To reduce product development

  • Once a basic configuration has been chosen, you may modify it to suit your specific needs

Basic configurations1
Basic Configurations

  • PDA or mobile handheld device

    • Variants with or without applications, such as WordPad

  • Cell phone/smart phone

    • 160x220 nominal display resolution

  • Web Pad

    • Touch-screen user interface and 640x480 or larger display

  • Internet appliance

    • Non-mobile, Browser-based device with a fixed (CRT or LCD) display and a keyboard.

    • Internet Appliance with Browser

      • Consumer Internet Appliance with mouse-based UI and 640x480 or larger display

    • Internet Appliance with Browser and Applications

Basic configurations continued
Basic Configurations (continued)

  • Media appliance

    • Playback or store music, video, and other electronic media

    • Digital Audio Receiver/Jukebox

      • Networked device that stores, decodes, and plays Windows Media Audio and MP3 music files

    • Digital Audio Receiver

      • Without local storage

    • Portable Audio Player with Wireless Networking

    • Portable DVD Player

    • Electronic Picture Frame

      • Retrieve and display picture from the internet or a home network

  • Digital imaging device

    • Camera, projector, and printer

Basic configurations continued1
Basic Configurations (continued)

  • Set-top box

    • Connects to a TV for display of Internet / media content

  • Residential gateway

    • Connects to the Internet and shares that connection with a wired or wireless home network

  • Industrial automation device

    • Human Machine Interface (HMI) or Programmable Logic Controller (PLC) variants

  • Retail Point-of-Sale device

    • Self-service kiosks, electronic payment terminals, POS terminals

  • Windows thin client

    • Minimal remote access terminal with constrained shell and RDP

Basic configurations continued2
Basic Configurations (continued)

  • Tiny Kernel

    • Smallest functional Windows CE image

    • Starting point for the most compact, headless devices

  • Custom Device

    • The most fully customizable configuration

    • Allows you to choose from all operating system features

    • Also a variant for devices without displays

Core operating system architecture
Core Operating System Architecture


Programming Interfaces

(Win32, COM, MFC, ATL)

Communications interfaces (Winsock, RAS, TAPI)










Device Drivers



The oem adaptation layer
The OEM Adaptation Layer

  • Layer between the Kernel and the hardware

  • Set of functions related to system startup, interrupt handling, power management, profiling, timer, and clock

  • Included in BSPs for supported SDBs

  • Coded by OEMs to adapt windows CE to their own custom platforms

  • Linked with code provided by Microsoft to build the Kernel

The kernel module
The Kernel Module

  • Portable across supported processors

    • Kernel is portable as most of the operating system is written in C


    • NK.EXE contains Kernel code and Coredll.dll is the operating system core DLL module

  • Saving system resources

    • CE loader is designed to save system resources by loading application pages as and when needed and by keeping only one physical copy of a DLL

  • Demand paging

    • Loads virtual memory pages into physical memory when needed

  • Multiple execute in place regions

    • Allows applications to execute code directly from read-only memory

Device driver system
Device Driver System

  • Device driver

    • Links an operating system and a device

  • Built-in Drivers vs. Installable Drivers

    • Built-in drivers are installed by the platform manufacturer

    • Installable drivers are third-party peripheral devices that end users can connect to a Windows CE-based platform

  • Native Drivers vs. Stream Drivers

    • All of the device drivers managed by GWES are native device drivers

    • Device manager loads stream interface drivers when the system boots, if those drivers are listed in the registry

  • Monolithic Drivers vs. Layered Drivers

    • Monolithic drivers implement interface directly in terms of actions on the device they control

    • Layered drivers separate the implementation into two layers

The gwes module
The GWES Module

  • Graphics, Windowing, and Event Subsystem

    • Graphic output: display and printer

    • User input: keyboard, stylus, and mouse

    • Window management: message routing

  • Graphic Device Interface (GDI)

    • Is the drawing subsystem of GWES

    • Controls how text and graphics are displayed

    • Uses a device context to store drawing attributes for a specified device

The filesys module
The Filesys Module

  • The Filesys Module

    • Implements the object store

      • File systems

      • Registry

      • Property Database

    • Substitutes for a hard drive on an embedded drive

    • Resides in ROM, RAM, or both

    • Can have a maximum size of 256 MB

The filesys module continued
The Filesys Module (continued)

  • Storage manager

    • Is responsible for all external storage items, including all the file systems and block drivers

  • Installable file systems

    • Can provide access to a floppy diskette, a hard drive, a flash file system on a PC Card, or to other external storage devices

  • File-shadowing mechanism

    • Allows a file to be stored both in RAM and ROM.

  • Differences from other Windows file systems

    • No letters assigned to file systems

    • No concept of current directory

    • No support for overlapped I/O

    • All files stored in RAM are automatically compressed

The filesys module continued1
The Filesys Module (continued)

  • Registry

    • Provides a common repository for system settings, application data, and user preferences

    • Resides in RAM, if not present in RAM, the registry can be reloaded from persistent storage or rebuilt from ROM

    • Registry functions specific to Windows CE

  • Property Database

    • Provides a lightweight database management system

    • Accessible using a new set of Win32 API functions specific to Windows CE

    • Data stored in a flat model

    • Accessible to ActiveX Data Objects for Windows CE (ADOCE)

    • Supports multiple volumes on installable file systems

Real time operating system
Real Time Operating System

  • Bounded interrupt response latency

  • Timer precision configurable (1 millisecond default)

  • System timer tick independent of thread quantum

  • Nested interrupt support

  • Priority inheritance

  • Protected virtual memory

  • Synchronization objects

Power management features
Power Management Features

  • Power management features respond to system calls for turning the system off or for idling

  • Device level power states, DO-D4

    • D0 – Full on: Full power with full functionality

    • D1 – Low On: Slightly reduced functionality, lower power and/or performance

    • D2 – Standby: Partial power with automatic wake

    • D3 – Sleep: Partial power with device initiated wake

    • D4 – Off: Power off

  • The only device power state that all devices must support is D0, full on

Advanced features of windows ce net
Advanced Features of Windows CE .NET

  • Networking and Communications

  • Real-Time Communication

  • Multimedia

  • Security

  • Internationalization

Serial number
Serial Number 받기

  • []

  • Product : Windows CE .NET 4.2

  • Platform builder와 embedded C++에서 사용할 Serial Number를 구한다.

  • Platform builder는 120일의 evaluation version.

  • Embedded C++은 freeware.

  • E-mail을 통해 serial number가 발송된다.

[Windows CE .NET 4.2] 을 선택한다.

Platform builder net 4 21
Platform builder .NET 4.2

  • MS Windows CE .Net 플랫폼을 개발하는 프로그램이다.

  • Visual studio같은 통합 개발환경을 제공한다.

  • Windows CE .NET플랫폼을 디자인, 작성, 빌드, 테스트 및 디버깅하는데 필요한 모든 개발 도구가 포함되어 있다.

  • 상용 프로그램이고 120일 Evaluation version은 MS사에서 무료로 받을 수 있다.

Platform builder

Configure Platform

Customize Platform

Develop device


Create or add

custom components




OS image

Modify source code

configuration files


Custom target device?


Configure Platform

Platform complete?

Develop OAL

board support package

and bootloader



Export SDK

Platform Builder

  • 임베디드 시스템의 custom Windows CE의 OS개발툴

  • 개발과정

    • Basic platform building

    • Customize Platform

    • Download to target device

Platform builder1
Platform builder 설치

  • CD를 넣으면 위와 같은 창이 뜬다.

  • Install을 선택한다.

  • Product key를 입력하고 [Next]를 선택한다.

  • Product key는 evaluation version이고, MS 홈페이지에서 얻을 수 있다.

  • Custom을 선택 후, [Next]를 클릭한다.

  • [ARMV4], [ARMV4I], [XSCALE]은 반드시 설치하여야 한다.

  • [Shared Source for windows CE .NET 4.2]는 커널 소스이다.

    • 굳이 포함 시킬 필요는 없다.

Pxa255 pro3 bsp

PXA255-Pro3 용 BSP 설치


  • Board support package의 약자이다.

  • 제공된 CD를 통해 설치한다.

  • [BSP설치방법.txt] 파일을 참조해서 설치 할 수 있다.

    • 1. CD의 BSP디렉토리의 PXA255PRO3디렉토리를 COPY하여, C:\WINCE420\PLATFORM 디렉토리에 PASTE한다.

      • 이때, CD의 내용 대신, 강의 홈페이지의 PXA255PRO3_BSP.zip의 내용을 /Platform/PXA255Pro3 folder로 복사한다.

    • 2. 제공된 .msi 파일을 더블클릭 하여 실행한다.

    • 3. (주)휴인스에서 제공한 BSP설치된것을 확인한다. (Catalog window의 Third party의 BSPs에서 확인)


  • BSP설치 모습이다.

  • [Next]를 선택한다.

Embedded visual c 4 0
Embedded Visual C++ 4.0

  • MS에서 제공하는 Windows CE .NET용 소프트웨어를 개발하는 프로그램이다.

  • Visual studio와 같은 통합 개발 환경을 제공한다.

  • 이 프로그램 자체가 개발 프로그램이므로 Visual studio없이 개발할 수 있다.

  • 무료개발 프로그램이다.

Embedded c
Embedded C++ 설치

  • Embedded C++ 설치 시작 모습이다.

  • [Next]를 선택하여 다음으로 진행한다.

  • License 동의에 관한 화면이다.

  • [I accept the agreement]를 선택하고 [Next]를 클릭한다.


JFlashMM 설치


  • Intel에서 제공하는 Rom Writer이다.

  • JTAG 케이블을 이용해 보드에 장착되어 있는 Flash에 Writing할 수 있는 프로그램이다.

  • Intel Website에서 최신 버전을 download받을 수 있다.

JFlashMM 설치

  • 제공된 CD

  • 또는

  • []

  • 를 통해 설치한다.

  • License동의를 묻는 화면이다.

  • [Yes]를 선택한다.

Giveio driver1
GIVEIO driver설치

  • GIVEIO driver

    • GIVEIO driver는 JFlashMM을 사용하기 위해 설치해야 한다.

    • Parallel port와 IO를 수행하기 위해 필요한 device driver이다.

  • [C:\Program Files\Intel Corporation\JFlash_MM\GIVEIO.SYS]

  • 파일을

  • [C:\windows\system32\drivers]에 복사한다.

  • 제어판에서 [새 하드웨어 추가]를 실행한다.

  • 하드웨어 추가 마법사 창에서 [다음]을 클릭한다.

  • [예, 하드웨어를 이미 연결했습니다]를 선택한다.

  • [다음]을 선택한다.

  • [목록에서 직접 선택한 하드웨어 설치]를 선택한다.

  • [다음]을 선택한다.

  • [포트(COM및LPT)]를 선택하고, [다음]을 선택한다.

  • [디스크 있음]을 선택한다.

적절한 폴더 선택

  • [giveio.inf]가 있는 파일경로를 지정하고, [확인]을 선택한다.

  • [giveio]가 위와 같이 잡히는지 확인한다.

  • [다음]을 선택한다.

  • [다음]을 선택한다.

  • [giveio] driver가 정상적으로 설치되었다.

  • [마침]을 선택한다.


  • Ethernet Bootloader.

  • MS Windows CE에서 기본적으로 제공하는 Bootloader이다.

  • Eboot는 보드에 전원이 들어가면

    • CPU의 GPIO, 메모리 컨트롤러, Interrupt controller, 클럭 등을 초기화한다.

    • 그 후, Ethernet controller를 초기화하고

    • TFTP를 통해 Windows CE OS이미지를 받아온다.

Eboot download1
EBOOT download

  • Program을 선택하면 DOS창이 뜬다.

  • 여기서 [Jflashmm]을 실행시킬 수 있다.

  • 제공된 CD에 있는

  • [\Utilties\JFlash_MM\acumen.dat]파일과

  • [\Image\EBOOT.nb0]파일을

  • [C:\Program Files\Intel Corporation\JFlash_MM]에 복사해 넣는다.

  • Writing과 Verifying을 거쳐 download가 성공적으로 완료되었다.


  • Eboot가 정상적으로 download되었는지 확인하기 위해 사용한다.

  • [보조프로그램]->[통신]->[하이퍼터미널]

  • 알맞은 COM port를 선택하고 [확인]을 선택한다.

  • [enter]키를 누르면 ethernet을 통해 새로운 부트로더 이미지를 다운로드한다.

  • [space]키를 누르면 boot loader option을 변경할 수 있다.

  • Eboot가 잘 동작하는 것을 확인하였다.

Handheld device

Handheld Device만들기

  • BSP를 설치했으므로 PXA255PRO3를 선택한다.

  • [Next]를 선택한다.

  • 모든 [Notification acknowledged]에 체크를 한 후, [NEXT]버튼을 클릭한다.

Active configuration
Active configuration변경

  • Platform 에도 debug Mode와 Release Mode가 있다.

  • Debug Mode

    • Kernel을 SDRAM에 올린다.

    • 이때, ethernet cable은 항상 연결되어 있어야 한다.

    • Host에서 debugging message를 볼 수 있다.

  • Release Mode

    • Kernel을 FLASH에 올린다.

    • Debugging정보를 포함하지 않으며, 속도가 debug모드보다는 빠르다.

  • Test중에는 Debug Mode로 사용하기로 한다.

Resolve features

현재 platform에 맞는 features를 선택해야 빌드가 가능하다.

[Device Driver]에서 오른쪽버튼을 누른다.

[Resolve Features]를 선택한다.

여기서 board에 해당하는 device를 선택해 준다.

Debug/Release Mode를 각각 설정해주어야 한다.

Resolve Features

Exclude power button
Exclude power button

  • Board에는 power button이 존재하지 않으므로 exclude시킨다.

    • Board에 달린 power button과 위 power button은 다르다.

  • 이 과정을 수행하지 않으면 커널이 제대로 동작하지 않는다.

  • Debug/Release Mode 모두 설정해야 한다.

Pxa255pro3 bat
PXA255PRO3.bat 파일 수정

  • \platform\PXA255PRO3\PXA255PRO3.bat

  • Kernel이 정상적으로 동작하기 위해서는 위 파일을 수정해야 한다.

  • 수정할 부분은 다음과 같다.


      • SET BSP_LAN91C111=


      • SET BSP_NOUSB=1

  • 강의 홈페이지의 PXA255PRO3_BSP.zip으로 BSP를 설치한 경우, 이미 수정이 되어 있다.

Platform reg

  • \platform\pxa255pro3\files\platform.reg

  • Scotg.dll부분을 IF문으로 감싸준다.


    • [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\TD242]

    • ENDIF

  • 강의 홈페이지의 PXA255PRO3_BSP.zip으로 BSP를 설치한 경우, 이미 수정이 되어 있다.

Build kernel
Build kernel

  • [Build]->[Build Platform]을 선택한다.

  • 시간이 꽤 걸리므로 설정을 정확히 하고 컴파일하는 것이 좋다. (약 10분 소요)

Configure remote connection
Configure remote connection

  • [Target]->[Configure Remote Connection]을 선택한다.

  • Board에 download하는 방식을 설정한다.

  • 이 과정을 수행해야만 board에 download할 수 있다.

  • Download/Kernel을 모두 Ethernet으로 설정.

  • [Configure]버튼을 선택한다.

  • Platform builder는 그대로 둔 채,

  • 하이퍼 터미널을 연결하고 보드의 전원을 킨다.

  • [space]키를 통해 IP등을 설정한다.

  • IP/Subnet을 설정 후, [D]를 통해 kernel을 download한다.

  • BOOTME message가 전송되는 것을 확인한다.

  • Platform builder를 보면, available device가 추가된 것을 볼 수 있다.

  • 이것을 선택하고 [OK]를 누른다.

  • Board와 platform builder와의 연결이 완료되었다.

  • [YES]를 누르고 계속 진행한다.

  • Download가 진행되는 것을 볼 수 있다.

  • Download가 완료되고 나면,

  • Platform builder는 debuging모드가 되고,

  • Board의 TFTLCD에는 WINCE가 동작하는 것을 볼 수 있다.

Application 개발

  • Application을 개발하기 위해서는 Embedded C++이 필요하다.

  • Platform builder를 통해 SDK를 생성한 후,

  • Embedded C++을 이용해 application을 제작한다.

  • Application은 “Hello World”라는 글자를 화면에 표시한다.

SDK 제작


  • Platform builder에서 [Platform]->[Configure SDK]를 선택한다.

  • [다음]을 선택한다.

  • MFC로 application을 제작할 것이므로, 위 그림대로 선택한다.

  • visual studio .NET으로 개발할 것이라면 .NET Compact framework도 선택한다.

Build sdk
Build SDK

  • [Platform]->[Build SDK]를 선택한다.

  • Build가 완료되었다.

  • SDK가 만들어진 위치를 확인한다.

  • Error가 없는 것을 확인하고, [Done]버튼을 누른다.

SDK 설치

  • SDK가 생성된 위치로 가서 msi파일을 실행한다.

  • License에 동의를 하고 [Next]를 선택한다.

Embedded c application

Embedded C++을 이용한 application 개발

  • [OK]를 선택하면 app_test라는 project가 생성된다

[tools]->[Configure platform manager] 있다를 선택하면 위와 같은 화면이 나타난다.

PXA255PRO3_MH device를 선택하고 [Properties]를 선택한다.

실행 전 설정사항

Transport 있다와 startup Server를 왼쪽과 같이 설정한다.

Transport의 configure버튼을 누른다.

Named connection 있다을 제작한 SDK에 맞는 이름을 선택한다.

[OK]를 통해 선택을 마치고 embedded C++에서 프로그램을 실행하면 보드에서 윈도우가 뜨는 것을 확인할 수 있다.