Выбрать главу

Mutex A mutex object is a synchronization object whose state is set to signaled when it is not owned by any thread and nonsignaled when it is owned. A mutex can only be owned by a single thread at a time. It is used to represent a resource that should only be accessed by one thread at any given time, such as a global variable or a hardware device.

Native Driver Touchscreen, Keyboard and Display drivers are the only native drivers existing in Windows Embedded CE and are managed by GWES rather than Device Manager.

OEM adaptation layer (OAL) An OAL is a layer of code that logically resides between the Windows Embedded CE kernel and the hardware of your target device. Physically, the OAL is linked with the kernel libraries to create the kernel executable file.

Operating System Benchmark (OSBench) A tool that is used to measure the performance of the scheduler.

OS Design A Platform Builder for Windows Embedded CE6 R2 project that generates a customized binary runtime image of the Windows Embedded CE6 R2 operating system

Platform Dependent Driver (PDD) The PDD layer of a layered driver is the part that interfaces directly with hardware and performs any hardware-specific processing.

Power Manager Controls the power consumption of the system by assigning a power state between D0 (fully on) and D4 (fully off) to the system as a whole and to individual drivers. It coordinates transitions between these states based on user and system activity, as well as specified requirements.

Process A process is a program in Windows Embedded CE. Each process can have multiple threads. A process can run in either user space or in kernel space.

Production Quality OAL (PQOAL) The PQOAL is a standardized OAL structure that simplifies and shortens the process of developing an OAL. It provides you with an improved level of OAL componentization through code libraries, directory structures that support code reuse, centralized configuration files, and a consistent architecture across processor families and hardware platforms.

Quick Fix Engineering (QFE) Windows Embedded CE patches that are available from Microsoft's website. They fix bugs and provide new features.

Reflector Service The service that allows user mode drivers to access the kernel and hardware by performing requests on their behalf.

Registry The information store for Windows Embedded CE that contains configuration information for hardware and software components.

Remote Performance Monitor This application can track the real-time performance of the operating system. It can also track memory usage, network latencies, and other elements

Run-time image The binary file that will be deployed on a hardware device . It also contains the complete operating system required files for applications and drivers.

Semaphore A semaphore object is a synchronization object that protects access to a hardware or software resource, allowing only a fixed number of concurrent threads to access it. The semaphore maintains a count between zero and a specified maximum value. The count is decremented each time a thread completes a wait for the semaphore object and incremented each time a thread releases the semaphore. When the count reaches zero, no more threads can access the resource protected by the semaphore. The state of a semaphore is set to signaled when its count is greater than zero and nonsignaled when its count is zero.

Shell The shell is the software that will interpret user interactions with the device. It launches when the device starts up. The default shell is called AYGShell and includes a desktop, start menu, and taskbar similar to those in desktop versions of Windows.

Software Development Kit (SDK) Used to allow third-party developers to make applications for a customized Windows Embedded CE6 R2 run-time image

Sources File A Sources file is a text file that sets macro definitions for the source code in a subdirectory. Build.exe uses these macro definitions to determine how to compile and link the source code.

Stream Interface Driver A stream interface driver is any driver that exposes the stream interface functions, regardless of the type of device controlled by the driver. All drivers other than the native drivers managed by GWES export a stream interface.

Subproject A set of files that you can easily integrate, remove and reuse in an OSDesign.

Synchronization Objects A synchronization object is an object whose handle can be specified in one of the wait functions to coordinate the execution of multiple threads.

Synchronous Access When two or more separate threads are working with the same buffer. Only one thread can access the buffer at any given time and no other threads access the buffer until the current thread is finished with it.

Sysgen The Sysgen phase is the first step in the build process done to filter the public and BSP folders. It identifies the files associated with the components selected in an OSDesign. During this phase, components selected in the OS Design are linked into executables and copied into the OS Design's folder.

Sysgen Variable A directive to the sysgen phase of the CE build process where selected CE features are linked together.

SYSINTR The value that corresponds to an IRQ. It is used to signal an associated event. This value is returned by an ISR in response to an interrupt.

Target Control Shell A shell in Platform Builder for Visual Studio providing access to debugger commands. The target control shell will be available when attached to a target system through KITL.

Thread The smallest software unit that the scheduler can manage on the OS. There can be multiple threads in a single driver or application.

User Mode Drivers loaded in user mode and all applications run in user memory space. When they are in this mode, drivers and applications do not have direct access to hardware memory and have restricted access to certain APIs and the kernel.

Virtual Memory Virtual memory is a way of abstracting the physical memory in a system to appear contiguous to processes that use it. Each process in Windows Embedded CE 6.0 R2 has two gigabytes of virtual memory space available, and to access physical memory from a process this memory must be mapped into the virtual address space of the process using MmMapIoSpace or OALPAtoVA.

About the Authors

Nicolas Besson

Nicolas Besson has over seven years of in-depth technical expe­rience with Windows Embedded CE technologies. He currently specializes in Software Development and Project Management at Adeneo, a key Microsoft Gold Embedded Partner with worldwide presence that focuses on Windows Embedded CE technologies. Nicolas has been a Microsoft eMVP for the last two years. He shares his knowledge by providing training for companies and people around the world. You can read more about his passion for Windows Embedded CE technologies on his blog at http://nicolasbesson.blogspot.com.

Ray Marcilla

Ray Marcilla is an Embedded Software Developer at Adeneo's American branch in Bellevue, Washington. Ray has significant experience in application development with native and managed code, as well as CE driver development. He also participates in CE-related technical presentations and workshops. Ray has worked on a number of interesting projects for ARM and x86 development platforms. In his free time, he likes to study foreign languages; he's currently fluent in Japanese, and can speak some Korean and French.