advanced building of a windows ce image

54
Advanced Building of a Windows CE Image

Upload: evan

Post on 20-Jan-2016

36 views

Category:

Documents


0 download

DESCRIPTION

Advanced Building of a Windows CE Image. 강의 내용. Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운 component 생성 및 추가. Platform Builder Directory Structure. Platform Directory Hardware specific file 포함 Public Directory - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Advanced Building of a Windows CE Image

Advanced Building of a Windows CE

Image

Page 2: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 2

강의 내용

Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운 component 생성 및 추가

Page 3: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 3

Platform Builder 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 4: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 4

Platform directory (1)

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

%_WINCEROOT%\Platform 하위 directory 는 각각의 reference

platform 지원 ARM 만을 설치 했을 경우 CEPC / EMULATOR / GEODE / SMDK2410 /

MAINSTONE 등을 생성 각 directory 는 .dirs file, SOURCE

file, .bat file 을 포함

Page 5: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 5

Platform directory (2)

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 6: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 6

Platform directory (3)

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

한정적인 modules GWE.EXE 와 NK.EXE 와 같은 system executable Build process 간 생성됨

Page 7: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 7

Platform directory (4)

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

driver 의 library component 를 제공

Page 8: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 8

Public directory (1)

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

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

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

Reference configuration 하위 directory : IABase, HLBase

Custom configuration 하위 directory

Page 9: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 9

Public directory (2) 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 10: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 10

Public directory (3)

모든 하위 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 11: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 11

Public directory (4)

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_Terminal.bat OAK

Files : configuration file 과 configuration 의 default registry로 이루어짐

Misc : OS 에 포함될 module 과 component 를 나열한 CESYSGEN.BAT file 포함

Page 12: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 12

Public directory (5)

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 13: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 13

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 14: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 14

Others Directory

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

MFC 의 Samples 포함 %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 15: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 15

Private Directory

core operating system 의 일부 source code

설치 과정에서 source 설치 여부를 반드시 check 해야 한다 .

source code Kernel GWES component file system manager component

%_WINCEROOT%\PRIVATE

Page 16: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 16

Build Process (1)

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 17: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 17

Build Process (2)

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

선택된 feature 를 추출하여 포함하는 단계 C:/WINCE420/PUBLIC/myplat/WINCE420/

cesysgen OS header file 을 platform 의 header file 에

include 하기 위해 filtering

Feature build (build or BSP) Device driver, OAL, Bootloader 와 같은 BSP 에

필요한 elements 를 building, compiling, linking C:\WINCE420\PLATFORM\ User feature, projectfile(.pbp) 가 build,

compile, link 됨과 동시에 dirs, source, makefiles가 built 된다 .

Page 18: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 18

Build Process (3)

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 19: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 19

Build Process (4)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 20: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 20

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 21: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 21

BuilBuildd

Step 2. Feature Build

Page 22: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 22

CopCopyy

Step 3. Building the Release Directory

Component / Configuration Component / Configuration FileFile

Page 23: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 23

MakeiMakeimgmg

Step 4. Making an Image

Page 24: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 24

System generation (1)

모든 component 의 모든 library Module 에 의해 expose 된 모든 function 과 모든

header file Module definition file(.def) IDE 에서 sysgen 을 실행할 때 , 선택된 module 과

component library 를 link Header file 과 system function export file 이

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

link 한다 . Build -> Generate Platform Headers

Page 25: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 25

System generation (2)

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 26: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 26

Feature Build (1)

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 27: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 27

Feature Build (2)

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 28: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 28

Feature Build (3)

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 29: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 29

Feature Build (4)

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 30: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 30

Feature Build (5)

MAKEFILEMAKEFILE

LocalLocalProjectProjectfolderfolder

%_MAKEENVROOT%%_MAKEENVROOT%

MAKEFILE.DEFMAKEFILE.DEF

SOURCESOURCE

Page 31: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 31

Feature Build (6)

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 32: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 32

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

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

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

%/%WINCEDEBUG% %_PLATFORMROOT%/%_TGTPLAT%/Target/

%_TGTCPUTYPE%/% WINCEDEBUG%/

Page 33: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 33

Building the Release Directory (2)

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 34: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 34

Building the Release Directory (3)

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 35: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 35

Making an Image (1)

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 를 정의한

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

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

Page 36: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 36

Making an Image (2)

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

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

Page 37: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 37

Explaining Build Errors (1)

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 38: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 38

Explaining Build Errors (2)

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 39: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 39

Integrated Development Environment (1)

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 40: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 40

Integrated Development Environment (2)

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 41: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 41

Integrated Development Environment (3) 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 에서 환경 변수를 설정하면

programmatically 하게 trigger 된다 .

Page 42: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 42

Modifying Configuration Files 다음 configuration file 은 image 를

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

Page 43: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 43

The Configuration Files: .BIB Files

OS 이미지에 포함되어져야 할 모듈과 컴포넌트 그리고 압축 이미지의 속성을 지정하는 텍스트 파일

Make a Image 과정에서 각 컴포넌트 폴더에 있는 모든 *.bib 을 모아 ce.bib 파일을 생성하고 이를 이용하여 OS 압축 이미지를 생성한다 .

BIB 파일은 다음 네 가지 영역으로 나눈어 기술한다 . Memory Config Modules Files

Page 44: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 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 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 영역 예약 , 다른 영역과 겹치면 안된다 ( 프레임버퍼 등 ).

Page 46: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 46

The Configuration Files: .BIB Files CONFIG : OS image 의 압축 / NK.nb0 생성 여부 등

지정

Compression 또는 ROM size 와 같은 특성을 설정할 경우 사용

ROMFLAGS 옵션을 이용하여 커널 인증 옵션을 설정 ROMFLAGS=0x0001 : 페이징 금지 옵션 ROMFLAGS=0x0002 : 인증을 고려한 동작 모드 지정 옵션 ROMFLAGS=0x0010 : ROMIMAGE 에 포함된 모든 파일을

무조건 신뢰함을 지정하는 옵션

CONFIG AUTOSIZE=ON COMPRESSION=ON ROMFLAGS=0

Config.bib

Page 47: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 47

The Configuration Files: .BIB Files

MODULES : memory 에 load 할 object module 명시(.exes/.dll) Example TASKMAN.EXE :

Taskman.exe $(_FALATRELEASEDIR)\Taskman.exe NK 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 48: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 48

The Configuration Files: .BIB Files

FILES : static data 의 memory partition 을 예약한다 . Example Tahoma.ttf

$(_FALATRELEASEDIR)\Tahoma.ttf NK SHU

S: System file H: Hidden file U: Uncompressed file

Page 49: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 49

The Configuration Files: .REG Files 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”*.re*.re

ggReginit.iReginit.inini

Default.fDefault.fdfdf

통합통합

압축압축

Page 50: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 50

The Configuration Files: .DAT Files 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 *.dat iniobj.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 51: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 51

The Configuration Files: .DB Files

default database table 을 생성하도록 지시하는 파일 Windows CE 시스템 및 Application 에 사용될

데이터베이스 .DB file 이 포함되어 image 생성시에 사용 COMMON.DB, WCEAPPS.DB 와 WCESHELL.DB PLATFORM.DB PROJECT.DB *.db initdb.ini

Page 52: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 52

Creating a Component (1)

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 53: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 53

Creating a Component (2)

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

Catalog 항목 포함 MaxResolvedImpsAllowed

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

일반적으로 1 을 사용 RequiredCEModules

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

Page 54: Advanced Building of a Windows CE Image

모바일운영체제 - Windows CE 54

Creating a Component (3)

.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 상에서 해당 소스 코드를 편집 할 수도 있음 )