Professional Documents
Culture Documents
CE PrepKit - Glossary and Index
CE PrepKit - Glossary and Index
Exam 70-571
Up to Date
with
R2
Content
Board Support Package (BSP) A BSP is the Data Marshaling A process done on data to
common name for all board hardware- check the access rights and validity of the
specific code. It typically consists of the boot data for a different process.
loader, the OEM adaptation layer (OAL),
and board-specific device drivers. Debug Zone A flag to enable or disable debug
messages related to a certain functionality or
Catalog A container of components that mode of a driver.
presents a selectable feature for an OSDesign
to the user. Device Driver A device driver is software that
manages the operation of a device by
Debugger Extension Commands (CeDe- abstracting the functionality of a physical or
bugX) CeDebugX is an extension to the virtual device.
Platform Builder debugger. It presents
detailed information about the state of the Dirs File A Dirs file is a text file that specifies
system at break time and attempts to the subdirectories that contain source code
diagnose crashes, hangs, and deadlocks. to be built.
Windows Embedded CE Test Kit (CETK) The Embedded Pointer A pointer embedded in a
CETK is a tool you can use to test device memory structure.
309
310 Glossary
Iltiming Iltiming determines interrupt service Kernel Tracker This tool provides a visual
routine (ISR) and interrupt service thread representation on a development
(IST) latencies on a Windows Embedded CE workstation of OS and application events
system. occurring on a Windows Embedded CE–
based device.
Interrupt A trigger that suspends (interrupts)
the system temporarily to indicate that Layered Driver A driver that is separated into
something has happened that requires several layers to make it easier to maintain
processing. Each interrupt on a system is and reuse code at a later date.
associated with a particular Interrupt
Request (IRQ) value and this IRQ value is Model Device Driver (MDD) The MDD layer
associated with one or more ISR. of a layered driver has a standardized
interface to the OS and Platform Device
Interrupt Service Routine (ISR) An ISR is a Driver (PDD) layer and performs all
software routine that hardware invokes in hardware independent processing related to
response to an interrupt. ISRs examine an the driver.
interrupt and determine how to handle it by
returning a SYSINTR value, which is then Monolithic Driver A driver that is not
associated with an IST. separated into different layers. It can also
mean any driver that does not conform to
Interrupt Service Thread (IST) The IST is a the standard Model Device Driver (MDD)/
thread that does most of the interrupt Platform Device Driver (PDD) layer
processing. The OS wakes the IST when the architecture of CE, even if the driver does
OS has an interrupt to process. After each have its own layering scheme.
IST is associated to a SYSINTR value, the
SYSINTR value can be returned from an ISR, Mutex A mutex object is a synchronization
and then the associated IST runs. object whose state is set to signaled when it
is not owned by any thread and nonsignaled
IRQ (Interrupt Request) IRQ values are when it is owned. A mutex can only be
associated in hardware with interrupts. Each owned by a single thread at a time. It is used
IRQ value can be associated with one or to represent a resource that should only be
more ISRs that the system will run to accessed by one thread at any given time,
process the associated interrupt when it is such as a global variable or a hardware
triggered. device.
Glossary 311
launches when the device starts up. The an OSDesign. During this phase,
default shell is called AYGShell and includes components selected in the OS Design are
a desktop, start menu, and taskbar similar to linked into executables and copied into the
those in desktop versions of Windows. OS Design’s folder.
Software Development Kit (SDK) Used to Sysgen Variable A directive to the sysgen
allow third-party developers to make phase of the CE build process where
applications for a customized Windows selected CE features are linked together.
Embedded CE6 R2 run-time image
SYSINTR The value that corresponds to an
Sources File A Sources file is a text file that IRQ. It is used to signal an associated event.
sets macro definitions for the source code in This value is returned by an ISR in response
a subdirectory. Build.exe uses these macro to an interrupt.
definitions to determine how to compile and
link the source code. Target Control Shell A shell in Platform
Builder for Visual Studio providing access to
Stream Interface Driver A stream interface debugger commands. The target control
driver is any driver that exposes the stream shell will be available when attached to a
interface functions, regardless of the type of target system through KITL.
device controlled by the driver. All drivers
other than the native drivers managed by Thread The smallest software unit that the
GWES export a stream interface. scheduler can manage on the OS. There can
be multiple threads in a single driver or
Subproject A set of files that you can easily application.
integrate, remove and reuse in an OSDesign.
User Mode Drivers loaded in user mode and
Synchronization Objects A synchronization all applications run in user memory space.
object is an object whose handle can be When they are in this mode, drivers and
specified in one of the wait functions to applications do not have direct access to
coordinate the execution of multiple hardware memory and have restricted access
threads. to certain APIs and the kernel.
Synchronous Access When two or more Virtual Memory Virtual memory is a way of
separate threads are working with the same abstracting the physical memory in a system
buffer. Only one thread can access the buffer to appear contiguous to processes that use it.
at any given time and no other threads Each process in Windows Embedded CE 6.0
access the buffer until the current thread is R2 has two gigabytes of virtual memory
finished with it. space available, and to access physical
memory from a process this memory must
Sysgen The Sysgen phase is the first step in be mapped into the virtual address space of
the build process done to filter the public the process using MmMapIoSpace or
and BSP folders. It identifies the files OALPAtoVA.
associated with the components selected in
Index
.NET Compact Framework 2.0 4, 29 Process Management API 104, 130
.pbcxml files 21 SignalStarted API 93
.tks files. See Test Kit Suite (.tks) files stream interface API 247, 250
__except keyword 120 Thread Management API 104
__finally keyword 121 Win32 API 84
__try keyword 121 application shortcuts on the desktop 55
32 processes limitation 219 Application Verifier tool 162, 179
3rdParty folder 22 architecture-generic tasks 214
4 GB address space 219 ARM–based platforms 223
assembly language 188
ASSERTMSG macro 151
A associating an OS design with multiple BSPs 10
abstraction between the underlying hardware and the asynchronous buffer access 288, 293
operating system 243 ATM. See automated teller machines (ATM)
access checks 293 attaching to a target device 71
ActivateDevice function 258 audio device driver registration 262
ActivateDeviceEx function 258 Autoexit parameter 182
ActiveSync 4, 29, 178 automated software testing 176
activity timers 128 automated teller machines (ATM) 101
registry settings for 129 automatic loading of drivers 259
address mappings automatic startup 91
virtual-to-physical 213 Autorun parameter 181
address table 213 Autos tool 161
ADEFINES directive 60 AUTOSIZE parameter 49
ad-hoc solutions 21
Advanced Build Commands 24, 43
Rebuild Current BSP And Subprojects 24
B
advanced debugger tools 161 backlight driver 25
Advanced Memory tool 162 battery life 125
AdvertiseInterface function 264, 284 battery critically low state 229
alerts 90 battery level reaches zero 232
AllocPhysMem function 226, 279, 290 Power Manager (PM.dll) and 127
analyzing build results 63–67 best practices for debug zones 157
analyzing CETK test results 184 binary image builder (.bib) files 46
API. See application programming interface (API) automatic startup 47
applets 97–98, 100 AUTOSIZE parameter 49
application caller buffer 291 BOOTJUMP parameter 49
application debugging 149 COMPRESSION parameter 49
application programming interface (API) 11 conditional processing in 53
CPlApplet API 98 CONFIG section 49
Critical Section API 111 file type definitions in 52
Event API 114 FILES section 51
file system API 247 FIXUPVAR parameter 50
GetProcAddress API 243 FSRAMPERCENT parameter 50
Interlock API 115 H flag 271
Mutex API 112 K flag 270
non-real-time 84 KERNELFIXUPS parameter 50
Power Manager APIs 126 MEMORY section 48
313
314 Index
MODULES section 51 code sharing between the OAL and the 214
NK memory region 270 debugging techniques for 188
noncontiguous memory and 49 driver globals and 207
OUTPUT parameter 50 Eboot 187
PROFILE parameter 50 Ethdbg 205
Q flag 271 Ethernet support functions 210
RAM_AUTOSIZE parameter 50 flash memory support 211
RAMIMAGE parameter 49 general task of a 186
RESETVECTOR parameter 50 hardware initialization tasks 209
ROM_AUTOSIZE parameter 50 kernel initialization routines and 187
ROMFLAGS parameter 50 memory mappings for a 206
ROMOFFSET parameter 50 menu of a 211
ROMSIZE parameter 50 network drivers and 188
ROMSTART parameter 50 run-time image download via Ethernet 210
ROMWIDTH parameter 50 serial debug output functions and 209
S flag 271 StartUp entry point 208
sections of 47 testing 186
SRE parameter 50 typical tasks of a 186
X86BOOT parameter 51 BootArgs. See boot arguments (BootArgs)
XIPSCHAIN parameter 51 BOOTJUMP parameter 49
binary ROM image file system (BinFS) 187 BootLoaderMain function 209
black shell 101 BOOTME packet 212
BLCOMMON framework 187 Bootpart 187
Bluetooth 29 bootstrap service 148
Board Support Package (BSP) 3, 168, 197–239 breaking into the debugger 119
adapting and configuring 199–218 breakpoints 149, 161
boot loader and 201 enabling and managing 171
cloning an existing reference BSP 201 hardware and 174
advanced debugger tools 202 interrupt handlers and 173
Cloning Wizard 202 restrictions 173
components of a 200 setting too many 173
configuration files 199, 201 Tux DLLs and 184
device drivers and 201 BSP development 24
folder structure of a 203 BSP. See Board Support Package (BSP)
hardware-independent code and 201 Bsp_cfg.h file 276
memory mapping of a 219–227 BSPIntrInit function 277
OEM adaptation layer (OAL) and 201 buffer handling 293
platform-specific source code 205 buffer marshaling 268
reducing development time 201 buffer overrun 274
serial debug output functions and 209 Buffer Tracked Events In RAM option 9
source code folders for device drivers 217 build commands 42
Board Support Packages wizard page 10 command line equivalents for 46
boot arguments (BootArgs) 171 build configuration files 57–62
driver globals and 207 build configuration management 6
boot loader Advanced Build Commands 24
architecture 186 build configuration files 57–62
assembly language and 188 build directives 59
binary ROM image file system (BinFS) and 187 build options 8
BLCOMMON framework 187 Clean Sysgen command and 45
Board Support Package (BSP) and 201 configurations files 14
BootLoaderMain function 209 Environment options 10
BOOTME packet 212 image configuration files 56
Bootpart 187 program database (.pdb) files 6
Index 315
GUID. See globally unique identifier (GUID) industrial control systems 101
GWES. SeeGraphics, Windowing, and Events Subsystem infinite loops 147
(GWES) INIT registry key 92
GwesPowerOffSystem function 230 Initdb.ini file 56
initializing a device context 253
initializing virtual memory 213
H Initobj.dat file 55–56
H flag 271 input/output operations 224
HalTranslateBusAddress function 290 installable ISR (IISR) 280
handles to system objects 103 architecture 280
hardware breakpoints 174 DLL functions 280
hardware conflicts 145 external dependencies and 281
hardware debugger stub (HdStub) 148 Plug and Play 280
hardware exceptions 119 registering an 281
hardware initialization tasks 209 instance-specific resources 252
hardware timer 83, 85 Institute of Electrical and Electronic Engineers (IEEE) 186
OEMIdle function and 136 integrated development environment (IDE) 5
hardware validation 90 IntelliSense 63
hardware-assisted debugging 169 interface GUIDs 264
hardware-debugging interface 70 Interlock API 115, 214
hardware-independent code 201 internal test applications 13
HdStub. See hardware debugger stub (HdStub) internationalization 7
Heap Walker 147 code pages 8
heaps 84 default locale 8
heat dissipation 125 locales 7
high-performance counters 85 Internet Explorer 4
honor the /base linker setting 50 Sample Browser catalog item 32
HookInterrupt function 276 thin client shell and 97
host process groups 270 inter-process communication 222
interrupt handlers
architecture of 272
I breakpoints and 173
I/O controls (IOCTLs) 132 communication between an ISR and an IST 279
I/O operations 248 device drivers and 272–282
IClass definitions 135 WaitForMultipleObjects function in 276
IClass value 264, 284–285 interrupt latency timing 85, 90, 216
IDE. See integrated development environment (IDE) Interrupt Latency Timing (ILTiming) tool 85, 216
Idle event 229 parameters for the 86
Idle mode 229 interrupt mappings
Idle power state 83 dynamic 277
idle threads 87 kernel arrays for 277
IEEE. See Institute of Electrical and Electronic Engineers shared 279
(IEEE) static 276
IISR. See installable ISR (IISR) Interrupt Service Routine (ISR) 216, 273–274
ILTiming. See Interrupt Latency Timing (ILTiming) tool Interrupt Service Thread (IST) 216, 273–274
image configuration files 56 InterruptDone function 273
IMGNODEBUGGER environment variable 168 InterruptInitialize function 275
IMGNOKITL environment variable 168 interrupts 272
inactivity timeout 229 synchronization capabilities in the OAL 272
INCLUDES directive 60 IOControl function 244, 280, 284
InCradle 128 IOCTLs. See I/O controls (IOCTLs)
increase code re-usability 203 IP address configuration 95
IPv6 4
Index 321
Makeimg.exe. See Make Binary Image tool (Makeimg.exe) Microprocessor without Interlocked Pipeline Stages (MIPS)
managed applications 281
kiosk mode and 101 Microsoft kernel code 214
Windows Embedded CE Test Kit (CETK) and 178 Microsoft Platform Builder for Windows Embedded CE 6.0 1,
managed code development 32 37
mapping tables 213 advanced debugger tools 161
marshaling data across boundaries 288–296 analyzing build results 63–67
marshaling helpers 293 BSP Cloning Wizard 202
MDD. See model device driver (MDD) Catalog Editor 22
mechanical wear and tear 125 configuration files for 12
medical monitoring devices 101 Debug Message Options 150
memcpy 296 Debug Zones dialog box 155
memory access 288 Heap Walker 147
asynchronous 293, 295 Kernel Tracker 147
exception handling and 296 OS Design Wizard 3
synchronous 294 Process Viewer 147
memory layout 46 Software Development Kit (SDK) 26
kernel regions 221 Subproject Wizard 14, 254
memory mapping of a BSP 219–227 Target Control option 158
process regions 222 Target Device Connectivity Options dialog box 68, 169
reserved regions from system memory 291 Microsoft Visual Studio 2005 3
memory leaks 145, 159 Build menu 41
memory management building run-time images in 41–45
ARM–based platforms 223 Catalog Items View 4
critical sections and 84 Configuration Manager 6
demand paging 82 connectivity options in 68
DEVFLAGS_LOADLIBRARY flag 83 debug information in the Output window of 149
dynamic allocation 121 debugging a target device 171
dynamically mapped virtual addresses 224 Error List window 64
heaps 84 IntelliSense 63
LoadDriver function and 83 Open Build Window command 46
LoadLibrary function 83 Output window 64
MIPS–based platforms 223 Solution Explorer 5
mutexes and 84 Watch window 155
noncontiguous physical memory and 225 minimizing the total number of committed memory pages
pre-committing memory pages 121 121
processes and 84 MIPS. See Microprocessor without Interlocked Pipeline Stages
reuse of system memory 84 (MIPS)
ROMFLAGS option 83 MIPS–based platforms 223
sharing of memory 82 MmMapIoSpace function 226, 279, 290
SHx–based platforms 223 MMU. See Memory Management Unit (MMU)
statically mapped virtual addresses 224 MmUnmapIoSpace function 290
system memory pool 84 model device driver (MDD) 18, 245
unhandled page faults 122 MODULES section 51
virtual address space 103 Modules tool 162
x86–based platforms 223 monolithic driver 245
Memory Management Unit (MMU) 213, 223, 288 architecture 244
memory mappings 206 mouse tests 182
memory regions 221–222 multi-bin image notification 212
MEMORY section 48 multiple platforms support 10
Memory tool 162 multitasking 103
memory-mapped files 222 multithreaded operating system 103
menu of a boot loader 211 multithreaded programming 115
Index 323
power states Q
activity timers and 128
configuration of 134 Q flag 271
Critical Off state 229, 232 QRimplicit-import 281
device classes and 135 quality assurance 145
driver 127 quantum 104
InCradle 128 QueryPerformanceCounter function 88
internal transitions of 133 QueryPerformanceFrequency function 88
OutOfCradle 128
overriding the configuration for an individual device 134 R
power-off state 229
processor idle 135 race conditions 147
registry entries for 134 RaiseException function 119
Suspend state 229–230 raising exceptions 119
system 127 RAM file system 50, 55
transitions of 128, 228 RAM_AUTOSIZE parameter 50
waking up from Suspend state 231 RAM-backed map files 222
power-off state 229 RAMIMAGE parameter 49, 225
PowerOffSystem function 126, 231 RDEFINES directive 60
PQOAL. See Production Quality OEM adaptation layer RDP. See Remote Desktop Protocol (RDP)
(PQOAL) Readlog tool 165
pre-boot routines 186 real-time performance 82, 88
pre-committing memory pages 121 measurement tools 84
preemptive multitasking 103 real-time systems design 81
PRELINK_PASS_CMD directive 61 rebuild commands 42
preprocessing conditions 54 Rebuild Current BSP And Subprojects 24
primary thread of execution 103 redistributing an OS design 11
priority list for threads 103 reducing BSP development time 201
process address space 222 reference naming matching 166
process identifier 103 Reflector service 268
Process Management API 104 Reginit.ini file 56, 266
Process Viewer 147 RegisterDevice function 258
processes and threads 103 Registers tool 162
Processes tool 162 registry (.reg) files 46, 54
processing model 103 registry settings 92
processor idle state 135 CELog registry parameters 163
Production Quality OEM adaptation layer (PQOAL) 197 CELogFlush tool 165
advanced debugger tools 201 Clientside.exe start parameters 181
professional Windows Embedded CE solutions 21 command processor shell 96
PROFILE parameter 50 Console key 96
Profile timer support functions 217 CurrentControlSet\State key 134
program database (.pdb) files 6 debug zones and 156
PROGRAM directive 60 DependXX entry 93
Program Files directory 55 device classes and 135
Project.bib file 47 device drivers and 263
Project.dat file 55 event logging zones and 163
Projsysgen.bat file 16 Flags registry value 266
public source code 18 HKEY_LOCAL_MACHINE\Drivers\Active 262, 297
modifications 19 HKEY_LOCAL_MACHINE\Drivers\BuiltIn 261, 297
public tree modification 18 HKEY_LOCAL_MACHINE\INIT 92
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Co
ntrol\Power\Interfaces 285
interrupt-related 298
326 Index
U W
UART. See Universal Asynchronous Receiver/Transmitter WaitForMultipleObjects function 108, 276
(UART) WaitForSingleObject function 108, 274
Udevice.exe. See user mode driver host process (Udevice.exe) wakeup sources 232
UDP. See User Datagram Protocol (UDP) waking up from Suspend state 231
uninitialized variables 147 Watch window 155, 161
unintentional thread synchronization 157 waveform generator 90
Universal Asynchronous Receiver/Transmitter (UART) 186 WCE TUX DLL template 183
Universal Serial Bus (USB) 69 Win32 API 84
UNIX–based embedded operating systems 103 WINCE_OVERRIDE_CFLAGS directive 61
unrecoverable system lockup 284 WINCECPU directive 61
USB. See Universal Serial Bus (USB) WINCEDEBUG environment variable 150
Use Xcopy Instead Of Links To Populate Release Directory WINCETARGETFILE0 directive 61
option 10 WINCETARGETFILES directive 61
user applications 91 window drawing 84
Terminal server and 97 Windows directory 55
User Datagram Protocol (UDP) 187 Windows Embedded CE custom test components for the
user mode driver host process (Udevice.exe) 268 Microsoft Windows CE Test Kit (CETK) 14
application caller buffers and 291 Windows Embedded CE shells 96–97
registry entries for 269 Windows Embedded CE Standard Shell 97
user space 219 Windows Embedded CE Subproject Wizard 14, 254
User-Defined Test Wizard 183 Windows Embedded CE Test Kit (CETK) 176–185
user-mode drivers 268 analyzing test results 184
UserProcGroup registry entry 270 Application Verifier tool 162
architecture of 176
CETK parser (Cetkpar.exe) 185
V client-side application (Clientside.exe) 177
validate a system in its final configuration 145 command-line parameters for 180
video memory 232 custom tests based on 179–180, 182
virtual address space 103 managed code and 178
dynamically mapped addresses 224 overview of 176
frame buffers of peripheral devices and 224 PerfToCsv parser tool 185
input/output operations and 224 skeleton Tux module 183
kernel space 219 standalone mode 182
non-cached 224 test engine (Tux.exe) 177
noncontiguous physical memory and 225 Test Kit Suite (.tks) files 179
statically mapped addresses 224 test results logger (Kato.exe) 177
user space 219 Test Suite Editor 179
virtual memory User-Defined Test Wizard 183
initializing 213 workstation server application (CETest.exe) 178
mapping tables 213 zorch parameter 180
new system of 219 Windows Manager 232
Index 331