advanced building of a windows ce image. windows ce.net2 강의 내용 platform builder 디렉토리...
TRANSCRIPT
![Page 1: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/1.jpg)
Advanced Building of a Windows CE
Image
![Page 2: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/2.jpg)
Windows CE.NET 2
강의 내용
Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운 component 생성 및 추가
![Page 3: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/3.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/4.jpg)
Windows CE.NET 4
Platform directory (1)
Platform 에 한정적인 Board Support Package (BSP) file
%_WINCEROOT%\Platform 하위 directory 는 각각의 reference platform 지원
ARM 만을 설치 했을 경우 CEPC / EMULATOR / GEODE / SMDK2410 / MAINSTON
E 등을 생성 각 directory 는 .dirs file, SOURCE file, .bat file 을
포함
![Page 5: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/5.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/6.jpg)
Windows CE.NET 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 한정적인 m
odules GWE.EXE 와 NK.EXE 와 같은 system executable Build process 간 생성됨
![Page 7: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/7.jpg)
Windows CE.NET 7
Platform directory (4)
CPU Support Package(CSP) \WINCE420\PUBLIC\COMMON\OAK\CSP 에 존재 각 CPU type 에 대한 common driver, OAL 과 driver 의 libr
ary component 를 제공
![Page 8: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/8.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/9.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/10.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/11.jpg)
Windows CE.NET 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_Ter
minal.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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/12.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/13.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/14.jpg)
Windows CE.NET 14
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 15: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/15.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/16.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/17.jpg)
Windows CE.NET 17
Build Process (2)
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 18: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/18.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/19.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/20.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/21.jpg)
Windows CE.NET 21
BuilBuildd
Step 2. Feature Build
![Page 22: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/22.jpg)
Windows CE.NET 22
CopCopyy
Step 3. Building the Release Directory
Component / Configuration Component / Configuration FileFile
![Page 23: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/23.jpg)
Windows CE.NET 23
MakeimgMakeimg
Step 4. Making an Image
![Page 24: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/24.jpg)
Windows CE.NET 24
System generation (1)
모든 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 25: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/25.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/26.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/27.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/28.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/29.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/30.jpg)
Windows CE.NET 30
Feature Build (5)
MAKEFILEMAKEFILE
LocalLocalProjectProjectfolderfolder
%_MAKEENVROOT%%_MAKEENVROOT%
MAKEFILE.DEFMAKEFILE.DEF
SOURCESOURCE
![Page 31: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/31.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/32.jpg)
Windows CE.NET 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%/%WINCEDEB
UG% %_PLATFORMROOT%/%_TGTPLAT%/Target/%_TGTCPUTYPE%/%
WINCEDEBUG%/
![Page 33: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/33.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/34.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/35.jpg)
Windows CE.NET 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 를 정의한 uniqu
e 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/36.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/37.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/38.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/39.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/40.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/41.jpg)
Windows CE.NET 41
Integrated Development Environment (3) Build option 을 이용하여 Windows CE 의 image 를 build 할 때 , f
ull 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 42: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/42.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/43.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/44.jpg)
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 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/45.jpg)
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 영역 예약 , 다른 영역과 겹치면 안된다 ( 프레임버퍼 등 ).
![Page 46: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/46.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/47.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/48.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/49.jpg)
Windows CE.NET 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”*.reg*.reg Reginit.iniReginit.ini
Default.fdfDefault.fdf
통합통합
압축압축
![Page 50: Advanced Building of a Windows CE Image. Windows CE.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/50.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/51.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/52.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/53.jpg)
Windows CE.NET 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.NET2 강의 내용 Platform Builder 디렉토리 구조 Platform Builder 에서의 Build Process Configuration File 수정 새로운](https://reader035.vdocuments.mx/reader035/viewer/2022081420/5697bff01a28abf838cba815/html5/thumbnails/54.jpg)
Windows CE.NET 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 상에서 해당 소스 코드를 편집 할 수도 있음 )