Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory...

51
Advanced Building of a Windows CE Image

Transcript of Advanced Building of a Windows CE Image. Windows CE.NET2 Directory Structure Platform Directory...

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