51
Advanced Building of a Windows CE Image

Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Embed Size (px)

Citation preview

Page 1: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Advanced Building of a Windows CE

Image

Page 2: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 2

Directory Structure

Platform Directory Hardware specific file 포함

Public Directory Platform 에 독립적인 component 와 WINCE 설정

파일 포함 SDK Directory

Platform 생성을 위한 tool 과 binary Others Directory

다양한 runtime, sample component 저장소 Private Directory

Windows CE .NET OS 의 source code 포함

Page 3: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 3

Platform directory

Platform 에 한정적인 Board Support Package (BSP) file

%_WINCEROOT%\Platform 하위 directory 는 각각의 reference platform 지원

ARM 만을 설치 했을 경우 ARMINTEGRATOR / CEPC / EMULATOR / GEODE / SMD

K2410 / XSC1BD 생성 각 directory 는 .dirs file, SOURCE file, .bat file 을

포함

Page 4: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 4

Platform directory (con’t)

CESYSGEN Platform 에 한정된 sysgen 명령을 포함한 makefile

DRIVERS platform 의 모든 driver 의 driver source file

EBOOT platform 의 Ethernet boot loader 를 위한 source file

FILES image 를 build 하기 위한 platform 한정된 configuration file

GWE display, Battery, LED 같은 GWE module 의 hardware

의존적인 부분

Page 5: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 5

Platform directory (con’t)

INC CPU register 와 모든 device 의 address 의 platform

한정적인 header file KERNEL

OEM Adaptation Layer (OAL) function 구현 file LIB

Platform 한정적인 static libraries (.LIB) Build process 간 생성됨

TARGET DRIVER dynamic link library 와 같은 platform 한정적인 m

odules GWE.EXE 와 NK.EXE 와 같은 system executable Build process 간 생성됨

Page 6: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 6

Platform directory (con’t)

CPU Support Package(CSP) \WINCE420\PUBLIC\COMMON\OAK\CSP 에 존재 각 CPU type 에 대한 common driver, OAL 과 driver 의 libr

ary component 를 제공

Page 7: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 7

Public directory

Platform 에 독립적인 Component 와 configuration의 설정 포함

%WINCEROOT%\PUBLIC 에 위치 3 가지 형태의 하위 디렉토리 포함

module, component 와 configuration 하위 directory : Wceshellfe, Wceappsfe, IE, MSMQ

Reference configuration 하위 directory : IABase, HLBase Custom configuration 하위 directory

Page 8: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 8

Public directory (con’t)

Module 과 Component 하위 directory COMMON DATASYNC : Device 측면의 communication

component DCOM : COM 을 배분하기 위한 모듈 과 component DIRECTX IE MSMQ RDP : Windows 기반의 terminal 을 위한 Remote

Desktop Protocol SCRIPT : JavaScript, VBScript engines SERVERS : Web Server 지원 WCEAPPSFE : Pocket Word/Outlook 응용프로그램 인가 WCESHELLFE : task manager, control panel

component shell 인가

Page 9: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 9

Public directory (con’t)

모든 하위 directory 의 directory structure CESYSGEN

directory build 를 위한 makefile 포함 OAK

OAL Device Driver Kit 의 module 과 component 포함 SDK

Software Development Kit(SDK) 의 module 과 component 포함 일부는 DDK directory 를 포함

Device Driver Kit(DDK) 의 module 과 component 포함

Page 10: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 10

Public directory (con’t)

Reference Configuration 하위 directory 두 개의 reference configuration

IABase(Internet Appliance Base Configuration) %_WINCEROOT%\PUBLIC\IABase

HLBase(Headless Base Configuration)%_WINCEROOT%\PUBLIC\HLBase

각 하위 directory 는 비슷한 내용을 포함한다 : 특정한 pre-made configuration 이 build 될 때 , Batch(*.bat) file 의 collection

이 실행 Batch file 은 Platform 에 포함될 것을 control 하는 환경 변수를 설정 Batch file 은 예를 들어 HLBase_minkern.bat 또는 Electoronic_Payment_Ter

minal.bat OAK

Files : configuration file 과 configuration 의 default registry 로 이루어짐 Misc : OS 에 포함될 module 과 component 를 나열한 CESYSGEN.BAT file

포함

Page 11: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 11

Public directory (con’t)

Custom Configuration 하위 directory configuration 을 생성할 때 , public directory 에 새로운 directory 생성

%_WINCEROOT%/Public/Myplat RelDir

OS image 를 build 하기 위해 요구되는 모든 file 을 포함하는 Release directory 는 module, default registry, default database, memory setting 을 포함

WINCE420 %_WINCEROOT% directory 의 조합은 custom configuration 을 명시 CESYSGEN

Common, Wceshell, Wceapps, IE, MSMQ 와 같은 Project 의 모든 module 과 component 를 포함

OAK(OAL Device Driver Kit) platform file 과 cesysgen.bat file 포함 Sysgen 단계에서 호출

Platform 을 정의한 Workspace file, project file 을 포함한다 .

Page 12: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 12

SDK Directory

Platform Builder 에서 사용하는 tool 그러나 , Image 를 build 하기 위해 사용되는 Tool 은

포함하지 않음 %_WINCEROOT_%\SDK Processor compilers

Platform 을 지원하는 cross compiler / assembler 포함 Development tools

Error lookup, GuidGen, Link, Nmake Miscellaneous utilites

Zoomin, Windiff

Page 13: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 13

Others Directory

모든 Windows CE runtime libraries 와 headers 포함 .NET Compact Frameworks 의 component 와 ATL 와 MFC 의 Sampl

es 포함 %WINCEROOT%\OTHERS ATL

Debugging 을 위한 ATL source code, libraries, headers DOTNET

.NET processor specific binaries 와 portable .NET Compact Framework file

MFC Debugging 을 위한 MFC source code, libraries, headers

SAMPLES MFC 와 ATL sample application 을 포함

WCETK Windows CE Test Kit(CETK) processor specific binaries CETK 는 각각의 Driver class 의 test 를 제공

Page 14: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 14

Private Directory

core operating system 의 일부 source code 설치 중에 반드시 check 해야 한다 . source code

Kernel GWES component file system manager component

%_WINCEROOT%\PRIVATE

Page 15: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 15

Build Process

COMMON

DATASYNC

DIRECTX

IE

MSMQ

RDP

SCRIPT

SERVERS

WCEAPPSFE

WCESHELLFE

..\CESYSGEN\DDK

..\CESYSGEN\OAK

..\CESYSGEN\SDK

\target, \files

C:\WINCE420\PUBLIC\%_TGTPROJ%RelDir\%_TGTPLAT%_X86Debug>

..\platform\.. \target, \files

NK.BIN

Step 1.System Generation

Step 3.Building the Release Directory

Step 2.Feature Build

Step 4.Making an Image

Page 16: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 16

Build Process (con’t)

System generation (Sysgen or CESYSGEN) 가능한 모든 feature list 로부터 platform 을 위해 선택된 f

eature 를 추출하여 포함하는 단계 C:/WINCE420/PUBLIC/myplat/WINCE420/cesysgen OS header file 을 platform 의 header file 에 include 하기

위해 filtering

Feature build (build or BSP) Device driver, OAL, Bootloader 와 같은 BSP 에 필요한 el

ements 를 building, compiling, linking C:\WINCE420\PLATFORM\ User feature, projectfile(.pbp) 가 build, compile, link 됨과

동시에 dirs, source, makefiles 가 built 된다 .

Page 17: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 17

Build Process (con’t)

Building the release directory (buildrel or BUILDREL) 1, 2 단계에서의 file 을 단일 directory 로 copy 한다 . PB – Build – Open Build Release Directory

Making an image (Makeimg or MAKEIMG) Build release directory 로부터 모든 파일을 취하고 , 단일

file 로 merge 한다 . 이 단일 file 은 reference platform hardware 에 download

한다 . NK.BIN / NK.SRE / NK.nb0

Page 18: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 18

Build Process (con’t)Catalog ItemsCatalog Items

SysgenSysgenFilterFilter OS DesignOS DesignBSP / projectBSP / project

Source CodeSource Code BuildBuild

%_FLATRELEEASEDIR%%_FLATRELEEASEDIR%

Run-TimeRun-TimeImageImage

BUILDRELBUILDREL

12

3

4

① SYSGEN : OS Design 으로 선택된 모듈과 컴포넌트들을 여과 (Filtering) 해주는 단계

② Build : OS Design 과 BSP 의 소스 코드들을 compile 하는 단계

③ Build Release (BUILDREL) : Release Directory (%_FLATRELEASEDIR%) 안으로 파일들을 복사해오는 단계

④ Make Image : 최종적인 OS Run-Time Image(NK.BIN) 을 생성해 내는 단계

Page 19: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 19

Filtering Filtering / Link/ Link

Step 1. System generation

*.exe / *.dll*.exe / *.dll

*.h / *.lib for Device *.h / *.lib for Device Driver / OEM ApplicationDriver / OEM Application

Page 20: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 20

BuilBuildd

Step 2. Feature Build

Page 21: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 21

CopCopyy

Step 3. Building the Release Directory

Component / Configuration Component / Configuration FileFile

Page 22: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 22

MakeimgMakeimg

Step 4. Making an Image

Page 23: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 23

System generation

모든 component 의 모든 library Module 에 의해 expose 된 모든 function 과 모든 header file Module definition file(.def) IDE 에서 sysgen 을 실행할 때 , 선택된 module 과 componen

t library 를 link Header file 과 system function export file 이 Custom version

의 OS 생성을 위해 추출 Makefile 은 CESYSGEN.BAT 의 변수 설정에 의존적 Makefile 은 선택된 component 와 일치되는 library 를 link

한다 . Build -> Generate Platform Headers

Page 24: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 24

System generation (con’t)

Complete header and source code files

Complete system libraries

Module definitions(.def)

Cesysgen.bat

System-specific header files

Linked libraries

Specific .def files

SYSGEN.BAT

Page 25: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 25

Feature Build

Source code 를 complie Dirs 를 이용 , 하위 directory compile 여부 결정 SOURCES file 을 이용 , 어떤 file 을 compile 할지 결정 Object module 을 compile 하고 link 하기 위해 NMAKE.EXE

호출 .exe, .dll 을 위한 target folder 에 binary file 생성

Example : Target \ ARMV4I \ Debug .lib 를 위한 lib folder 에 binary file 생성

Example : Lib \ ARMV4I \ Debug

Page 26: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 26

Feature Build (con’t)

DIRS file 이 존재하면 : DIRS 에 list 된 각각의 directory 를 build

DIRS file 이 존재 하지 않는다면 : build.exe 는 SOURCES file 을 참조해 그것이 포함한 모든 C, C+

+ 과 assembly file 을 compile 한다 . Build.exe 에 의해 호출된 NMAKE.exe 가 .exe 와 .dll, .lib file 로

build 하고 , link build.exe 에 의해 생성되는 모듈 :

.exe 와 .dll files Target \ %_TGTCPUTYPE% \ %WINCEDEBUG% Example: target \ ARMV4I \ Debug

.lib files Lib \ %_TGTCPUTYPE% \ WINCEDEBUG% Example: Lib \ ARMV4I \ Debug

Page 27: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 27

Feature Build (con’t)

DIRS file 하위 directory 를 build 하기 위한 list 하위 directory 를 DIRS file 에 포함할 수 있다 .

DIRS 에서 DIRS_CE 와 OPTIONAL_DIRS 를 사용할 수 있다 . DIRS_CE

만약 Windows CE 를 위해 building 할 경우 build 되는 directory 를 명시

OPTIONAL_DIRS build.exe command line 에서 명시하지 않거나 BUILD_OPTION

환경변수에 directory 를 추가해주지 않으면 , build 할 수 없다 .

DIRS =\DIRS =\Display\Display\Mouse\Mouse\Keyboard\Keyboard\EthernetEthernet

Page 28: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 28

Feature Build (con’t)

SOURCES files 에 의해서 사용된 주요한 macro: TARGETNAME

build 된 module 의 이름 TARGETTYPE

type 을 정의 (.lib/.dll/.exe) DLLENTRY

.dll file 을 위한 entry type EXEENTRY

.exe file 을 위한 entry type TARGETLIBS

link 단계를 위한 .lib file INCLUDES

Header file 을 찾기 위한 path SOURCES

compile 될 모든 source file 반드시 makefile 이 있어야 한다 .

Page 29: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 29

Feature Build (con’t)

MAKEFILEMAKEFILE

LocalLocalProjectProjectfolderfolder

MAKEFILE.DEFMAKEFILE.DEF

SOURCESOURCE

%_MAKEENVROOT%%_MAKEENVROOT%

Page 30: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 30

Feature Build (con’t)

SOURCE file 예 :

build.exe 가 IOPORT.CPP 와 VGAPORT.CPP 를 compile COREDLL.LIB 와 결과를 link entry 는 DllMain kbdmouse.dll 라는 dynamic link library 생성

TARGETNAME = KbdmouseTARGETTYPE = DYNKINKDLLNTRY = DllMainTARGETLIBS = \$(_COMMONSDKROOT)\Lib\$(_CPUNDPATH)\Coredll.bibINCLUDES = $(COMMONSDKROOT)\IncSOURCES = \

iport.cpp \vgaports.cpp\

Page 31: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 31

Building the Release Directory buildrel tool 은 다음 directory 로부터 파일을 copy:

%_PROJECTROOT%/Cesysgen/Oak/Files %_PROJECTROOT%/Oak/Files %_PLATFORMROOT%/%_TGTPLAT/\Files %_PROJECTROOT%/Cesysgen/Oak/Target/%_TGTCPUTYPE%/%

WINCEDEBUG% %_PROJECTROOT%/Oak/Target/%_TGTCPUTYPE%/%WINCEDEB

UG% %_PLATFORMROOT%/%_TGTPLAT%/Target/%_TGTCPUTYPE%/%

WINCEDEBUG%/

Page 32: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 32

Building the Release Directory (con’t)

Makeimg.exe 가 호출 되기 전 모든 file 과 binary 는 %_FLATRELEASEDIR% 에 존재 해야 한다 .

CE version 3.0 이전에는 _FLATRELEASEDIR 에 file 을 copy 하기 위해 Buildrel 을 사용

지금의 Windows CE .NET 에서는 _FLATRELEASEDIR 이 NTFS partition 에 있다면 Buildrel 은 original file 이 어디에 저장되어 있는가에 관계없이 hard link 를 생성하려고 시도

Hard linking 은 파일의 단지 하나의 물리적인 복사본으로서 disk space 에 저장되고 존재

Page 33: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 33

Building the Release Directory (con’t)

buildrel 이 성공적으로 hard link 를 생성하는가에 따라 flatreleasedir 내에 original 의 update 된 file 이 writing

Hard linking 의 결과 어떤 feature(e.g. automatic bib update)를 실행하기 위해 IDE 는 _FLATRELEASEDIR 내 file 의 외부 management 가 original 을 update 하는 것을 보호 해야 한다 .

IDE 를 통해 개발 한다면 사용자는 직접 _FLATRELEASEDIR 의 어떤 file(e.g. project.bib) 를 편집하거나 _FLATRELEASEDIR 에 private version 의 file 들을 copy 하지 않아도 된다

Page 34: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 34

Making an Image

Makeimg 는 Fmerge tool 을 사용하여 build process 에서 사용된 configuration file 을 merge: 모든 .bib file 을 unique file(CE.BIB) 에 merge

Binary image build 모든 .reg file 을 unique file(reginit.ini) 에 merge 모든 .dat file 을 unique file(INITOBJ.DAT) 에 merge 모든 .db file 을 image 의 default database 를 정의한 uniqu

e file(initdb.ini) 에 merge reginit.ini file 을 binary file(DEFAULT.FDF) 로 압축 특정한 language 에 맞게 바꿀 module 의 resource 를 대체

(language 는 LOCALE 환경 변수에 정의 해야함 )

Page 35: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 35

Making an Image (con’t)

makeimg 는 file 과 binary 가 CE.BIB 에 명시 ce.bib 로부터 binary 와 file 을 windows CE image 로

결합한다 . Windows CE image 를 완료 Build -> Make Image

Page 36: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 36

Explaining Build Errors

Error during the Sysgen phase 일반적으로 file 이 없을 경우 Operating system feature 의 설정 Sysgen 단계의 application build 에서 발생 Build.log 를 참조하여 해결 \Public directory 의 component 를 수정한 경우

Error during the feature build phase Compilation syntax error / Unresolved link error Build.err 검토

Error during the building the release directory phase Disk space 가 부족 / locked file / read only file 인 경우 Hard driver 의 용량 확인 Build.log 확인

Page 37: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 37

Explaining Build Errors (con’t)

Errors during the making an image phase Flat release directory 에 file 이 없을 경우 이전 error / bib file error 에서 초래 Build.log / build.err 확인 Romimage.exe failed in CE.BIB

Bib 에 등록된 file 이 Flat release directory 에 없을 경우 Romimage.exe failed in reginit.ini

CE Registry 의 syntax error 가 발생한 경우 Error:Image exceeds

Config.bib 에 명시한 NK space 보다 더 큰 image 를 building 하는 경우

Page 38: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 38

Integrated Development Environment

Feature View Platform 에 포함된 모든 드라이버 / OS component 표시 선택한 WebPad, Media Appliance 와 같은 configuration

아래에 OS component 가 표시 [IABASE] 또는 [HLBASE] 인 base configuration 표시 Third party 와 다른 driver 는 BSP 또는 platform root node

아래에 list 된다 . IDE 내의 각각의 OS component 는 SYGEN 환경 변수와 연관되어 있다 .

Feature View 에서 Sysgen feature 와 component 는 추가 / 제거 할 수 있다 .

Page 39: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 39

Integrated Development Environment (con’t)

Resolve Features feature group 이 Unresolved 된 platform 은

특정한 feature 와 연관되지 않은 feature group 을 포함한다 .

platform build 전에 unresolved 된 feature group 을 resolve 해야 한다 .

platform 이 unresolved 된 feature group 을 포함한다면 , Resolve Features dialog box 가 platform 과 BSP 에 feature 를 선택하도록 한다 .

Resolve Features dialog box 는 이미 resolve 된 feature group 의 조합을 remove 또는 modify 할 수 있도록 한다 .

Page 40: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 40

Integrated Development Environment (con’t)

Build option 을 이용하여 Windows CE 의 image 를 build 할 때 , full build mechanism 은 단지 변경된 feature 를 build 하려고 한다 .

그러나 feature 의 상호 의존의 복잡성 때문에 때대로 변경되지 않은 feature 가 불필요하게 build 된다 .

이것은 시간이 걸리므로 좀더 낳은 platform building process 방법을 보인다 . Building a Selected Component

FeatureView window 에서 build 될 item 선택 Right-click 하고 , Build Selected Component click

Making the Image Build -> Make Image

Environment Variables Platform Environment Variable Window 에서 환경 변수를 변경한

경우 , 전체 platform 을 rebuild 한다 . CE component(CEC) file 에서 환경 변수를 설정하면 programmaticall

y 하게 trigger 된다 .

Page 41: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 41

Modifying Configuration Files 다음 configuration file 은 image 를 생성하기

위해 build process 에서 사용된다 : .BIB files .REG files .DAT files .DB files

Page 42: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 42

The Configuration Files: .BIB Files OS 이미지에 포함되어져야할 모듈과 컴포넌트를 가리키는

텍스트 파일 Files Modules Memory Config

FILES : static data 의 memory partition 을 예약한다 . Example Tahoma.ttf $(_FALATRELEASEDIR)\Tahoma.ttf NK SHU S: System file H: Hidden file U: Uncompressed file

Page 43: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 43

The Configuration Files: .BIB Files MODULES : memory 에 load 되어 지기 위한 object module

명시 (.exes/.dll) Example TASKMAN.EXE $(_FALATRELEASEDIR)\Taskman.exe N

K SH S to define it as a system file H to define it as a hidden file R to compress resources C to compress everything D to prevent a debugger from running N to mark a module as non-trusted P to ignore the CPU type on a per-module basis K to signal that ROMIMAGE has to fixup the DLL to run properly PLATFORM.BIB / PROJECT.BIB / CONFIG.BIB

Page 44: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 44

The Configuration Files: .BIB Files MEMORY : OS / Object Store 의 크기 및 시작 번지

Data memory – ROM 또는 RAM memory 영역Program memory – memory application 을 위해 예약된 RAM영역 NK

Nk영역은 800000 hex byte(8388608 byte) 의 사이즈 / 시작 번지 8C800000

Data memory 를 위한 ROM 을 다룬다 . RAM

RAM영역은 7AFFFF hex bytes 의 사이즈 / 시작 번지 8C050000 Program memory 를 위한 RAM 을 다룬다 .

Name Start address Size(bytes) TypeNK 8C800000 00800000 RAMIMAGERAM 8C050000 007AFFFF RAM

Config.bib

Page 45: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 45

The Configuration Files: .BIB Files Memory (con’t)

MEMORY section memory type RAM

program memory 와 RAM file system 이 존재하는 RAM 이 동작하기 위한 Memory영역 명시

이 영역들은 연속적이어야 하며 , 중간에 메모리를 예약하면 않된다 . 실행중인 프로세스와 RAM base file system 을 위한 영역

RAMIMAGE ROM처럼 다루어 지는 memory 영역을 명시 / system 에 unique 해야

함 한번만 선언되어야함

RESERVED kernel 에서 사용하지 않고 application 에서 접근 RAM영역 예약 , 다른 영역과 겹치면 않된다 .(프레임버퍼 등 )

CONFIG : OS image 의 압축 / NK.nb0 생성 여부 Compression 또는 ROM size 와 같은 특성을 설정할 경우 사용

Page 46: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 46

The Configuration Files: .REG Files .REG file 은 default registry setting 을 정의하기 위해 사용 HKEY_LOCAL_MACHINE root key 에서 Init key Launch10 와 Launch20 에 2 개의 string entry Launch10 과 Launch20 의 값은 각각 SHELL.EXE 와

DEVICE.EXE 의 설정 값 이 entry 는 kernel 이 startup 할 때 자동적으로 SHELL.EXE

와 DEVICE.EXE 실행하도록 한다 . COMMON.REG, DATASYNC.REG, DCOM.REG,

DIRECTX.REG IE.REG, MSMQ.REG, RDP.REG, SCRIPT.REG WCEAPPS.REG 와 WCESHELL.REG

PLATFORM.REG PROJECT.REG [HKEY_LOCAL_MACHINE\Init]

“Launch10”=“SHELL.EXE” “Launch20”=“DEVICE.EXE”*.reg*.reg Reginit.iniReginit.ini

Default.fdfDefault.fdf

통합통합

압축압축

Page 47: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 47

The Configuration Files: .DAT Files .DAT file 은 image 의 folder 구조를 정의 특정 폴더를 생성 및 복사할 경우 사용 Program Files 과 My Documents 라는 2 개의 directory 가 정의 Windows CE 에서 root directory(\) 에 위치 Program Files 는 하나의 My Project 하위 directory 를 가지고 있다 . My Document directory 는 MyFile.doc 라는 file 을 포함하고 있다 . 단지 할당만 한다는 것에 주의 . MyFile.doc 는 .BIB file 에 등록되어야 image 에 존재한다 . COMMON.DAT, IE.DAT, MSMQ WCEAPPS.DAT 과 WCESHELL.DAT PLATFORM.DAT PROJECT.DAT Root:-Directory(“Program Files”)

Directory(“\Program Files):-Directory(“My Projects”)

Root:-Directory(“My Documents”)Directory(“\ My Documents):-File(“MyFile.doc”,”\Windows\Myfile.doc”)

Page 48: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 48

The Configuration Files: .DB Files

.DB configuration file 은 default image database

Windows CE 시스템 및 Application 에 사용될 데이터베이스

.DB file 이 포함되어 image 생성시에 사용 COMMON.DB, WCEAPPS.DB 와

WCESHELL.DB PLATFORM.DB PROJECT.DB

Page 49: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 49

Creating a Component

CEC : CE component file OAL, device driver 또는 다른 component 를

개발한다면 , 해당 Component File(.cec) 에 의해 Platform Builder Catalog 에 추가할 수 있다 .

Platform Builder environment 에 생성된 component를 importing 할 수 있다 .

.CEC file 은 catalog 에 통합되어질 component 를 설명한 test file 이다 .

Page 50: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 50

Creating a Component (con’t)

.CEC file 은 4 개의 다른 type 의 block 을 가진다 CECInfo Block : 일반적인 정보를 포함 ComponentType block : 그룹 혹은 생성된 Catalog 항목 포함 MaxResolvedImpsAllowed

(Optional)OS Design 에 존재해야 하는 같은 형태의 구현에 대한 최대 수를 설정하는 Element

일반적으로 1 을 사용 RequiredCEModules

(Optional)OS Design 에 더불어 추가되어야 하는 모듈을 설정하는 Element

Page 51: Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory Hardware specific file 포함 Public Directory Platform 에

Windows CE.NET 51

Creating a Component (con’t)

.CEC file 은 4 개의 다른 type 의 block 을 가진다 Implementation block : component 구현 정의

Variable (Optional) Catalog Item 과 함께 사용되어야 하는 특별한 환경

변수 EX> Variable( , ) BuildMethod block : 빌드에 필요한 정보 제공

Step: Build Step 을 말합니다 . BSP: Feature Build Step BUILDREL: Release Copy Step MAKEIMG: Make Image Step CESYSGEN: Cesysgen Step

Action 빌드 단계에서 Platform Builder 에 의해 특별한 활동을 수행 즉 , SOURCES 혹은 DIRS 파일에서 정의한 형태로 동작을

수행 #SRCCODE: 소스코드의 위치를 IDE상에서 보여주는 Element

(IDE상에서 해당 소스 코드를 편집 할 수도 있음 )