Windows® Embedded CE 6.0 Fundamentals
Total Page:16
File Type:pdf, Size:1020Kb
Windows® Embedded CE 6.0 Fundamentals Stanislav Pavlov Pavel Belevsky Glossary The glossary includes important terms used in the book and their definitions . Access checking A check to verify that the IRQ (Interrupt Request) IRQ values are caller process has permissions to access associated in hardware with interrupts . the buffer . Each IRQ value can be associated with Application Logically grouped executable one or more Interrupt Service Routines code . (ISRs) that the system will run to process the associated interrupt when it is Board Support Package (BSP) A BSP is the triggered . common name for all board hardware- specific code . It typically consists of the Kernel Debugger The kernel debug- boot loader, the OEM adaptation layer ger integrates functionality required to (OAL), and board-specific device drivers . configure a connection to a target device and download a run-time image to the Catalog A container of components that target device . It allows the debugging presents a selectable feature for an OS of the Operating System, drivers, and design to the user . applications . Component Smallest OS functional compo- Kernel Independent Transport Layer nent that can be added to an OS design . (KITL) The KITL is designed to provide an Device Manager Part of the system kernel easy way to support debugging services . responsible for working with stream Kernel-Mode Driver A driver that runs in interface drivers . the kernel’s memory space . Embedded pointer Pointer that passes to Layered device driver A sample device an API function in a data structure or driver that comes with the Platform buffer . Builder . It contains two layers: a model Interrupt service routine (ISR) A small device driver (MDD) layer and a plat- subroutine that resides in the OEM ad- form-dependent driver (PDD) layer . aptation layer (OAL) . The ISR executes Managed code Code written in C# or in kernel mode and has direct access to VB .NET for .NET Compact Framework . the hardware registers . Its sole job is to determine what interrupt identifier to Marshaling A process to check the access return to the interrupt support handler . rights and validity of data for different Essentially, ISRs map physical interrupts processes . onto logical interrupts . Model device driver (MDD) The platform- Interrupt service thread (IST) A thread neutral layer of a native device driver created by a device driver to wait on an supplied by Microsoft . event . 231 232 Glossary Module A subset of the Windows CE operat- componentization through code librar- ing system . Windows CE is structured as ies, directory structures that support code a collection of modules . Each module is reuse, centralized configuration files, and a self-contained subset of the Windows a consistent architecture across processor CE operating system that can be used to families and hardware platforms . construct a customized operating system Reflector service The service that enables for a particular device . user-mode drivers to access the kernel Native code Code written in ASM/C/C++ and hardware by performing requests on that uses the Win32 API . their behalf . OEM adaptation layer (OAL) An OAL is Run-time image The binary file that will be a layer of code that logically resides deployed on a hardware device . It also between the Windows Embedded CE contains the complete operating system kernel and the hardware of your target required files for applications and drivers . device . Physically, the OAL is linked with Secure copy Local copy of a data buffer . the kernel libraries to create the kernel Stream interface driver A stream inter- executable file . face driver is any driver that exposes the OS design A Platform Builder for Windows stream interface functions, regardless Embedded CE6 R2 project that generates of the type of device controlled by the a customized binary runtime image of the driver . All drivers other than the native Windows Embedded CE6 R2 operating drivers managed by GWES export a system stream interface . Platform Dependent Driver (PDD) The PDD Synchronization primitive/object An layer of a layered driver is the part that object that enables completion of interfaces directly with hardware and per- synchronization tasks in a multithreaded forms any hardware-specific processing . environment . Pointer parameter Pointer that is passed to Synchronous access Access to the buffer at an API function as a parameter . the time of an API call . Process A running application that con- Thread The smallest software unit that the sists of a private virtual address space, scheduler can manage on the Operating code, data, and other operating-system System . There can be multiple threads in a resources, such as files, pipes, and syn- single driver or application . chronization objects that are visible to the User-mode drivers Drivers loaded in user process . A process also contains one or mode and all applications run in user more threads that run in the context of memory space . When they are in this the process . mode, drivers and applications do not Production Quality OAL (PQOAL) The have direct access to hardware memory PQOAL is a standardized OAL structure and have restricted access to certain APIs that simplifies and shortens the pro- and the kernel . cess of developing an OAL . It provides you with an improved level of OAL References Building Solutions Using Windows Boling, Douglas . Programming Windows Embedded CE 6 .0 course Embedded CE 6.0 Developer Reference. Course 2540N: Building Embedded Solutions 4th Edition . Microsoft Press, 2007 . Using Windows CE 5.0 Wilson, Y . James, Aspi Havewala . Building Windows Embedded CE blog, http://blogs . Powerful Platforms with Windows CE. msdn .com/ce_base/ Addison-Wesley Professional, 2001 . Murray, John . Inside Microsoft Windows CE Microsoft Press, 1998 . 233 Resources Forums n Russian-speaking forum dedicated to Microsoft embedded operating systems: http://www .msembedded .ru/forum Blogs n Windows Embedded CE team blog: http://blogs .msdn com/ce_base. n .NET Compact Framework team blog: http://blogs .msdn com/netcfteam. n HopperX blog, dedicated to device issues: http://blogs .msdn com/hopperx/. n Mike Hall blog, dedicated to Microsoft embedded operating systems: http://blogs .msdn com/mikehall/. n SQL Server Compact Edition team blog: http://blogs .msdn com/. sqlservercompact/ Newsgroups n microsoft .public windowsce. .platbuilder n microsoft .public windowsce. n microsoft .public .pocketpc .developer n microsoft .public windowsce. embedded. Books n Boling, Douglas . Programming Windows Embedded 6.0 Developer Reference. 4th Edition . Microsoft Press, 2007 . n Wilson Y ., James and Aspi Havewala . Building Powerful Platforms with Windows CE . Addison-Wesley Professional, 2001 . n Murray, John . Inside Microsoft Windows CE . Microsoft Press, 1998 . 235 Index Symbol _TGTPROJ environment variable, API, See application programming 105 interface (API) $bus namespace, 140 __try/__except/__finally blocks, application development, $device namespace, 140 155 203–213 3COM 3C90X network card, 125 _WINCEROOT environment application libraries, 75 3RDPARTY subdirectory, 102 variable, 101, 105, 176 application programming 32-bit architecture, 78 interface (API), 7 802 .1, 8 Application Verifier utility, 222 .bib files, 111 A architecture of device CONFIG section of, 112 absolute binary format, 111 drivers<$startrange>, 135 execute in place (XIP) and, 113 abstraction of hardware or virtual architecture of the Windows MEMORY Section of, 112 device, 2, 127, 135 Embedded CE Test Kit (CETK), MODULES attributes in, 114 access checking, 151 215 MODULES section of, 113 ActivateDeviceEx function, 146, architecture of virtual memory, 78 .cab files for installing programs, 148, 165 architecture of Windows 74 Active Server Pages (ASP), 9 Embedded CE, 75 _CL_ environment variable, 105 ActiveSync, 8, 57, 216 ARM emulator, 8 .dat files, 111, 115 Active Template Library (ATL), 8, ARM processor, 2, 121 .db files, 111, 115 206 ARMSetup function, 160 _DEPTREES environment variable, ActiveX, 206 armtrap .s file, 161 105, 108 ActivityTimers registry key, 184 Aruba Board, 121 _FLATRELEASEDIR environment adaptation of desktop ASM code, 203 variable, 105, 110 applications, 7 ASP . See Active Server Pages (ASP) _ISVINCPATH variable, 176 Add Device window, 51 Aspen Development Board, 121 .lib files . See static libraries ( .lib) Add New Subproject wizard assembler language, 160 .NET Compact Framework, 6, 8, dialog box, 207 asynchronous access to buffers, 103, 203 address fixup, 145 152-153 .obj files . See object files ( .obj) addressing of memory, 79 AsynchronousBuffer_t class, 155 _OEMINCPATH variable, 176 Advanced Build Commands ATL8 directory, 102 _PLATFORMROO„S environment option, 45 ATL . See Active Template Library variable, 105 Advanced Memory utility, 54 (ATL) _PROJECTROO„S environment advantages of kernel-mode ATM . See automated teller variable, 105 drivers, 142 machine (ATM) __PROJROOT variable, 176 AdvertiseInterface function, 182, Attach Device option, 48 _PUBLICROOT environment 198 attacks, 153 variable, 105 alerts, 67 audio output, 183 .reg files, 111, 115 aliases and buffers, 152 Autoload registry key, 149, 189 __security_init_ cookie function, allocating memory regions with automated teller machine 162 fine granularity, 84 (ATM), 5 /STACK linking parameter, 87 AMD Am79C970 network card, automatically launching _TGTCPU environment variable, 125 applications at the system 105 analysis of session data, 71 startup, 165, 177-179 _TGTPLAT environment variable, apicall