Title: Advanced Building of a Windows CE Image
1Advanced Building of a Windows CE Image
2?? ??
- Platform Builder ???? ??
- Platform Builder??? Build Process
- Configuration File ??
- ??? component ?? ? ??
3Platform 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 ??
4Platform 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?
??
5Platform 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
???? ??
6Platform 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? ???
7Platform directory (4)
- CPU Support Package(CSP)
- \WINCE420\PUBLIC\COMMON\OAK\CSP ? ??
- ? CPU type? ?? common driver, OAL? driver?
library component ? ??
8Public directory (1)
- Platform? ???? Component? configuration? ?? ??
- WINCEROOT\PUBLIC ? ??
- 3?? ??? ?? ???? ??
- module, component? configuration ?? directory
Wceshellfe, Wceappsfe, IE, MSMQ - Reference configuration ?? directory IABase,
HLBase - Custom configuration ?? directory
9Public 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 ??
10Public 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 ??
11Public 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 ??
12Public 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? ????.
13SDK 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
14Others 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? ??
15Private Directory
- core operating system? ?? source code
- ?? ???? source ?? ??? ??? check?? ??.
- source code
- Kernel
- GWES component
- file system manager component
- _WINCEROOT\PRIVATE
16Build Process (1)
..\CESYSGEN\DDK ..\CESYSGEN\OAK ..\CESYSGEN\SDK \t
arget, \files
COMMON DATASYNC DIRECTX IE MSMQ RDP SCRIPT SERVERS
WCEAPPSFE WCESHELLFE
Step 1.System Generation
Step 2.Feature Build
..\platform\.. \target, \files
Step 3.Building the Release Directory
Step 4.Making an Image
C\WINCE420\PUBLIC\_TGTPROJRelDir\_TGTPLAT_X86
Debuggt
NK.BIN
17Build 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??.
18Build 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
19Build Process (4)
Catalog Items
1
Build
Sysgen Filter
2
OS Design
BSP / project Source Code
? Build Release (BUILDREL) Â Â Â Release Directory
(_FLATRELEASEDIR) ??? ???? ????? ?? ? Make
Image ???? OS Run-Time Image(NK.BIN)? ??? ?? ??
? SYSGEN OS Design?? ??? ??? ??????
??(Filtering) ??? ?? ? Build OS Design? BSP?
?? ???? compile?? ??
3
_FLATRELEEASEDIR
4
Run-Time Image
20Step 1. System generation
Filtering / Link
.exe / .dll
.h / .lib for Device Driver / OEM Application
21Step 2. Feature Build
Build
22Step 3. Building the Release Directory
Copy
Component / Configuration File
23Step 4. Making an Image
Makeimg
24System 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 -gt Generate Platform Headers
25System generation (2)
Complete header and source code files
System-specific header files
SYSGEN.BAT
Complete system libraries
Linked libraries
Module definitions(.def)
Specific .def files
Cesysgen.bat
26Feature 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
27Feature 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
28Feature 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 \ Display\ Mouse\ Keyboard\ Ethernet
29Feature 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? ??? ??.
30Feature Build (5)
MAKEFILE
31Feature Build (6)
- SOURCE file ?
- build.exe? IOPORT.CPP? VGAPORT.CPP? compile
- COREDLL.LIB? ??? link
- entry? DllMain
- kbdmouse.dll?? dynamic link library ??
TARGETNAME Kbdmouse TARGETTYPE DYNKINK DLLNTRY
DllMain TARGETLIBS \ (_COMMONSDKROOT)\Lib\
(_CPUNDPATH)\Coredll.bib INCLUDES (COMMONSDKRO
OT)\Inc SOURCES \ iport.cpp
\ vgaports.cpp\
32Building 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/WINCEDEBU
G - _PLATFORMROOT/_TGTPLAT/Target/_TGTCPUTYPE/
WINCEDEBUG/
33Building 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?
???? ??
34Building 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?? ??? ??
35Making 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?? ??? ?? ???)
36Making an Image (2)
- makeimg? file? binary? CE.BIB? ??
- ce.bib??? binary? file? windows CE image? ????.
- Windows CE image? ??
- Build -gt Make Image
37Explaining 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 ??
38Explaining 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? ??? ??
- ErrorImage exceeds
- Config.bib? ??? NK space?? ? ? image? building ??
??
39Integrated 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? ?? / ??
? ? ??.
40Integrated 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 ? ? ??? ??.
41Integrated 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 -gt Make Image
- Environment Variables
- Platform Environment Variable Window?? ?? ??? ???
??, ?? platform? rebuild ??. - CE component(CEC) file?? ?? ??? ????
programmatically?? trigger??.
42Modifying Configuration Files
- ?? configuration file? image? ???? ?? build
process?? ???? - .BIB files
- .REG files
- .DAT files
- .DB files
43The Configuration Files .BIB Files
- OS ???? ?????? ? ??? ???? ??? ?? ???? ??? ????
??? ?? - Make a Image ???? ? ???? ??? ?? ?? .bib? ??
ce.bib ??? ???? ?? ???? OS ?? ???? ????. - BIB ??? ?? ? ?? ???? ??? ????.
- Memory
- Config
- Modules
- Files
44The 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) Type NK 8C800000 0
0800000 RAMIMAGE RAM 8C050000 007AFFFF RAM
Config.bib
45The Configuration Files .BIB Files
- Memory (cont)
- 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?? ??, ?? ??? ??? ???(????? ?).
46The Configuration Files .BIB Files
- CONFIG OS image? ?? / NK.nb0 ?? ?? ? ??
- Compression ?? ROM size? ?? ??? ??? ?? ??
- ROMFLAGS ??? ???? ?? ?? ??? ??
- ROMFLAGS0x0001 ??? ?? ??
- ROMFLAGS0x0002 ??? ??? ?? ?? ?? ??
- ROMFLAGS0x0010 ROMIMAGE? ??? ?? ??? ??? ????
???? ??
CONFIG AUTOSIZEON COMPRESSIONON
ROMFLAGS0
Config.bib
47The 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
48The 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
49The 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 Launch10SHELL.EXE
Launch20DEVICE.EXE
.reg
Reginit.ini
??
??
Default.fdf
50The 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(\Progr
am Files)-Directory(My Projects) Root-Directo
ry(My Documents) Directory(\ My
Documents)-File(MyFile.doc,\ Windows\Myfile.do
c)
51The 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
52Creating 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??.
53Creating a Component (2)
- .CEC file? 4?? ?? type? block? ???
- CECInfo Block ???? ??? ??
- ComponentType block ?? ?? ??? Catalog ?? ??
- MaxResolvedImpsAllowed
- (Optional)OS Design? ???? ?? ?? ??? ??? ?? ?? ??
???? Element - ????? 1? ??
- RequiredCEModules
- (Optional)OS Design? ??? ????? ?? ??? ????
Element
54Creating a Component (3)
- .CEC file? 4?? ?? type? block? ???
- Implementation block component ?? ??
- Variable
- (Optional) Catalog Item? ?? ????? ?? ??? ??
??    EXgt 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???
?? ?? ??? ?? ? ?? ??)