Foreword |
|
xxxv | |
Introduction |
|
xxxvii | |
|
PART I INTRODUCING EMBEDDED DEVELOPMENT |
|
|
|
Chapter 1 Embedded Development |
|
|
3 | (8) |
|
What Is an Embedded Device? |
|
|
3 | (3) |
|
Similarity to Personal Computer |
|
|
4 | (1) |
|
Difference from Personal Computer |
|
|
4 | (1) |
|
Specialized Purpose Device |
|
|
5 | (1) |
|
Example of Embedded Devices |
|
|
5 | (1) |
|
What Is Embedded Software? |
|
|
6 | (1) |
|
Programming Languages and Principles |
|
|
6 | (1) |
|
|
6 | (1) |
|
Specialized Purpose Application |
|
|
7 | (1) |
|
Development Considerations |
|
|
7 | (3) |
|
|
8 | (1) |
|
|
9 | (1) |
|
|
9 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
Chapter 2 Windows Embedded Compact 7 |
|
|
11 | (8) |
|
What Is Windows Embedded Compact? |
|
|
11 | (6) |
|
Windows Embedded Compact 7 Features |
|
|
12 | (2) |
|
Modular and Compact Operating System |
|
|
14 | (1) |
|
Real-Time Operating System |
|
|
14 | (1) |
|
Support Broad Range of Hardware |
|
|
15 | (1) |
|
|
15 | (1) |
|
|
16 | (1) |
|
Why Windows Embedded Compact? |
|
|
17 | (1) |
|
|
17 | (1) |
|
Debug, Testing, and Quality Control |
|
|
18 | (1) |
|
|
18 | (1) |
|
Chapter 3 Development Station Preparation |
|
|
19 | (10) |
|
Development Computer Requirements |
|
|
19 | (2) |
|
|
20 | (1) |
|
|
20 | (1) |
|
Windows Embedded Compact 7 Software |
|
|
21 | (2) |
|
Recommended Installation Steps |
|
|
21 | (2) |
|
Quick Fix Engineering Updates |
|
|
23 | (1) |
|
Development Environment Setup |
|
|
23 | (4) |
|
|
23 | (1) |
|
Virtual PC as Target Device |
|
|
24 | (1) |
|
|
24 | (1) |
|
|
24 | (1) |
|
Connectivity for Debugging and Testing |
|
|
25 | (1) |
|
|
25 | (1) |
|
|
26 | (1) |
|
Typical Development Environment |
|
|
26 | (1) |
|
|
27 | (2) |
|
Chapter 4 Development Process |
|
|
29 | (6) |
|
|
29 | (1) |
|
|
30 | (1) |
|
|
31 | (1) |
|
Typical Development Processes |
|
|
31 | (3) |
|
Board Support Package (BSP) |
|
|
32 | (1) |
|
|
33 | (1) |
|
|
33 | (1) |
|
|
33 | (1) |
|
|
34 | (1) |
|
Post-Deployment Support and Updates |
|
|
34 | (1) |
|
|
34 | (1) |
|
Chapter 5 Development Environment And Tools |
|
|
35 | (18) |
|
|
35 | (2) |
|
|
36 | (1) |
|
Platform Builder for Windows Embedded Compact 7 |
|
|
37 | (11) |
|
|
39 | (1) |
|
|
40 | (3) |
|
Board Support Package (BSP) |
|
|
43 | (1) |
|
|
43 | (1) |
|
|
44 | (1) |
|
|
44 | (1) |
|
|
45 | (1) |
|
|
46 | (1) |
|
|
47 | (1) |
|
Windows Embedded Silverlight Tool |
|
|
47 | (1) |
|
Target Device Connectivity |
|
|
48 | (1) |
|
Kernel Independent Transport Layer (KITL) |
|
|
48 | (1) |
|
|
48 | (1) |
|
Application for Compact 7 |
|
|
49 | (1) |
|
Windows Embedded Compact Test Kit |
|
|
49 | (1) |
|
|
49 | (4) |
|
PART II PLATFORM BUILDER AND OS DESIGN |
|
|
|
Chapter 6 Bsp Introduction |
|
|
53 | (16) |
|
BSP Provided by Platform Builder |
|
|
54 | (1) |
|
BSP Components, Files, and Folders |
|
|
54 | (2) |
|
|
56 | (1) |
|
|
57 | (11) |
|
Add an ATAPI Driver Component to MyBSP |
|
|
58 | (2) |
|
Add a Hive-Based Registry Component to MyBSP |
|
|
60 | (1) |
|
Add a Display Configuration Component to MyBSP |
|
|
61 | (2) |
|
|
63 | (2) |
|
Add a Component to Configure System Memory |
|
|
65 | (1) |
|
Add Serial Port Driver Components |
|
|
66 | (1) |
|
Add a Component to Enable Serial Debug Messages |
|
|
67 | (1) |
|
|
68 | (1) |
|
|
69 | (18) |
|
|
69 | (1) |
|
|
70 | (13) |
|
|
70 | (4) |
|
OS Design Project Files and Folders |
|
|
74 | (1) |
|
|
74 | (1) |
|
|
75 | (7) |
|
Compile and Generate OS Run-time Image |
|
|
82 | (1) |
|
Generate SDK from the OS Design |
|
|
83 | (3) |
|
|
83 | (2) |
|
Build and Generate an SDK MSI File |
|
|
85 | (1) |
|
|
86 | (1) |
|
Chapter 8 Target Device Connectivity And Download |
|
|
87 | (10) |
|
Target Device Connectivity |
|
|
88 | (1) |
|
Connecting to the Target Device |
|
|
88 | (4) |
|
Establish Connection to Download Compact 7 Image to Target Device |
|
|
88 | (4) |
|
Download OS Run-time Image to Target Device |
|
|
92 | (1) |
|
Target Device Connectivity Setting |
|
|
92 | (3) |
|
|
95 | (2) |
|
Chapter 9 Debug And Remote Tools |
|
|
97 | (28) |
|
|
97 | (3) |
|
Kernel Independent Transport Layer (KITL) |
|
|
98 | (1) |
|
Core Connectivity (CoreCon) |
|
|
98 | (1) |
|
|
99 | (1) |
|
|
100 | (3) |
|
|
101 | (2) |
|
|
103 | (18) |
|
|
105 | (1) |
|
|
106 | (1) |
|
|
107 | (1) |
|
|
108 | (3) |
|
|
111 | (1) |
|
|
112 | (1) |
|
Remote Resource Leak Detector |
|
|
113 | (3) |
|
Remote System Information |
|
|
116 | (1) |
|
|
117 | (1) |
|
|
118 | (3) |
|
|
121 | (2) |
|
Display Target Device Running Processes |
|
|
121 | (1) |
|
Launch Internet Explorer with Target Control |
|
|
121 | (1) |
|
Terminate Running Process with Target Control |
|
|
122 | (1) |
|
Other Target Control Commands |
|
|
122 | (1) |
|
|
123 | (2) |
|
|
125 | (12) |
|
Windows Embedded Compact Registry |
|
|
125 | (4) |
|
|
126 | (1) |
|
|
126 | (3) |
|
Registry for Windows Embedded Compact Component |
|
|
129 | (2) |
|
Registry for the Serial Port |
|
|
129 | (2) |
|
Useful Registry References |
|
|
131 | (3) |
|
Registry for the FTP Server |
|
|
131 | (1) |
|
Registry for the Telnet Server |
|
|
132 | (1) |
|
Device Identification and Description |
|
|
132 | (1) |
|
Registry to Launch Application during Startup |
|
|
132 | (1) |
|
Device Name for USB Removable Storage |
|
|
133 | (1) |
|
Internet Explorer Startup Page |
|
|
133 | (1) |
|
Auto Flush and Save Registry |
|
|
133 | (1) |
|
Disable Suspend Function on the Start Menu |
|
|
133 | (1) |
|
|
134 | (1) |
|
Windows Embedded Compact Registry Files |
|
|
134 | (2) |
|
|
135 | (1) |
|
|
135 | (1) |
|
|
135 | (1) |
|
|
135 | (1) |
|
|
135 | (1) |
|
|
135 | (1) |
|
|
136 | (1) |
|
|
136 | (1) |
|
Chapter 11 The Build System |
|
|
137 | (14) |
|
The OS Design Build Process |
|
|
137 | (5) |
|
Pre-Sysgen Phase --- Build OS |
|
|
139 | (1) |
|
|
139 | (1) |
|
|
140 | (2) |
|
|
142 | (1) |
|
|
142 | (1) |
|
|
142 | (4) |
|
Build from the Platform Builder IDE |
|
|
143 | (2) |
|
Build from the Command Line |
|
|
145 | (1) |
|
Best Practice to Save Time and Minimize Problems |
|
|
146 | (3) |
|
Understand the Build Process |
|
|
146 | (2) |
|
Project Documentation and Archive |
|
|
148 | (1) |
|
|
149 | (2) |
|
Chapter 12 Remote Display Application |
|
|
151 | (6) |
|
Access Compact 7 Desktop Remotely |
|
|
151 | (1) |
|
Add Remote Display Application to an OS Design |
|
|
151 | (3) |
|
Add Remote Display Application from the Catalog |
|
|
152 | (1) |
|
Add Registry to Launch Remote Display Application |
|
|
153 | (1) |
|
Generate OS Run-time Image with Remote Display Application |
|
|
153 | (1) |
|
How-To: Use Remote Display Application |
|
|
154 | (1) |
|
Using Remote Display Application on Headless Device |
|
|
155 | (1) |
|
|
156 | (1) |
|
Chapter 13 Testing With Compact Test Kit |
|
|
157 | (16) |
|
|
157 | (1) |
|
Establishing Connectivity for CTK |
|
|
158 | (4) |
|
Preparing an OS Run-time Image to Support CTK |
|
|
158 | (1) |
|
Connecting CTK to the Target Device with KITL |
|
|
158 | (2) |
|
Connecting CTK to a Target Device with CoreCon |
|
|
160 | (2) |
|
Testing Compact 7 Device with CTK |
|
|
162 | (8) |
|
CTK Test with Manual Interaction: Input Device |
|
|
163 | (3) |
|
Unattended CTK Test: Display Driver |
|
|
166 | (1) |
|
|
167 | (1) |
|
|
168 | (2) |
|
|
170 | (3) |
|
PART III APPLICATION DEVELOPMENT |
|
|
|
Chapter 14 Application Development |
|
|
173 | (8) |
|
Developing Compact 7 Applications |
|
|
173 | (6) |
|
Differences When Developing Desktop Applications |
|
|
174 | (1) |
|
|
175 | (1) |
|
Managed-Code Applications Using Visual Studio |
|
|
176 | (1) |
|
Native Code Application for Compact 7 |
|
|
177 | (2) |
|
Connectivity to Deploy and Debug Application |
|
|
179 | (1) |
|
|
179 | (1) |
|
Kernel Independent Transport Layer (KITL) |
|
|
179 | (1) |
|
|
180 | (1) |
|
Chapter 15 Net Compact Framework |
|
|
181 | (6) |
|
NET Compact Framework Application |
|
|
182 | (1) |
|
Required Compact 7 OS Components |
|
|
182 | (1) |
|
Connectivity to Target Device |
|
|
182 | (1) |
|
Steps to Develop, Deploy, Test, and Debug |
|
|
182 | (1) |
|
.NET CF Application Considerations |
|
|
183 | (2) |
|
Similarity to Windows Phone 7 |
|
|
183 | (1) |
|
.NET Compact Framework Garbage Collector |
|
|
184 | (1) |
|
Platform Invoke (P/Invoke) |
|
|
184 | (1) |
|
Separate Thread for Event Handler and GUI |
|
|
184 | (1) |
|
Differences from the Full .NET Framework |
|
|
184 | (1) |
|
|
185 | (2) |
|
Chapter 16 Corecon Connectivity |
|
|
187 | (8) |
|
Implementing CoreCon for Application Development |
|
|
187 | (5) |
|
|
188 | (1) |
|
Copy CoreCon Files to Compact 7 Device's File System |
|
|
188 | (1) |
|
Edit OSDesign.BIB to Include CoreCon Files in the OS Image |
|
|
189 | (1) |
|
Using a Third-Party CoreCon Component |
|
|
190 | (2) |
|
Connecting to a Target Device with CoreCon |
|
|
192 | (2) |
|
|
194 | (1) |
|
Chapter 17 Visual Studio Native Code Application Example |
|
|
195 | (12) |
|
Prerequisites and Preparation |
|
|
195 | (1) |
|
Develop a Native Code Application for Compact 7 |
|
|
196 | (9) |
|
Creating a Win32 Smart Device Application Project |
|
|
196 | (1) |
|
Add Code to a Win32 Smart Device Application |
|
|
197 | (1) |
|
Connecting to a Target Device |
|
|
198 | (2) |
|
Deploy an Application to a Target Device for Testing |
|
|
200 | (1) |
|
Debugging a Win32 Smart Device Application |
|
|
201 | (4) |
|
|
205 | (2) |
|
Chapter 18 Managed Code Application Example |
|
|
207 | (12) |
|
Prerequisites and Preparation |
|
|
207 | (1) |
|
Developing a Managed Code Application for Compact 7 |
|
|
208 | (10) |
|
Creating a Managed Code Smart Device Application Project |
|
|
209 | (1) |
|
Add Code to a Managed Code Smart Device Application |
|
|
210 | (2) |
|
Connecting to a Target Device |
|
|
212 | (1) |
|
Deploying a Managed Code Smart Device Application to the Target Device |
|
|
213 | (2) |
|
Debugging a Managed Code Smart Device Application |
|
|
215 | (3) |
|
|
218 | (1) |
|
Chapter 19 Platform Builder Native Code Application Example |
|
|
219 | (14) |
|
Prerequisites and Preparation |
|
|
219 | (1) |
|
Developing a Virtual PC OS Design |
|
|
220 | (4) |
|
Using a Virtual PC as the Target Device |
|
|
221 | (1) |
|
Establish a Connection to a Virtual Machine |
|
|
221 | (1) |
|
Create a Target Device Profile for a VM |
|
|
222 | (1) |
|
Configure the Virtual Machine |
|
|
222 | (1) |
|
Download an OS Run-time Image to a Virtual Machine |
|
|
223 | (1) |
|
Developing a Platform Builder Native Code Application for Compact 7 |
|
|
224 | (2) |
|
Creating a Platform Builder Application Subproject |
|
|
224 | (2) |
|
Including an Application in the OS Run-time Image |
|
|
226 | (1) |
|
Downloading an OS Run-time Image to a Virtual PC |
|
|
226 | (1) |
|
Debugging a Platform Builder Native Code Application |
|
|
226 | (5) |
|
Building and Launching a Platform Builder Subproject Application |
|
|
228 | (1) |
|
Rebuild and Relaunch a Platform Builder Subproject Application |
|
|
229 | (1) |
|
|
230 | (1) |
|
|
231 | (2) |
|
Chapter 20 Developing Embedded Database Applications |
|
|
233 | (34) |
|
Introducing Microsoft SQL Server Compact |
|
|
233 | (1) |
|
|
234 | (1) |
|
Microsoft SQL Server Compact |
|
|
234 | (4) |
|
|
235 | (1) |
|
|
236 | (1) |
|
Windows Embedded Compact Database Engines |
|
|
236 | (1) |
|
|
236 | (2) |
|
Compact Database Requirements |
|
|
238 | (1) |
|
Compact 7 Device Requirements |
|
|
238 | (1) |
|
Managed Code Requirements |
|
|
239 | (2) |
|
|
240 | (1) |
|
Building a SQL Compact Database Application Using Visual Data Designers |
|
|
241 | (6) |
|
|
241 | (1) |
|
Creating a New SQL Compact Server Database |
|
|
242 | (1) |
|
Creating a Table in the Database |
|
|
242 | (1) |
|
|
243 | (1) |
|
|
243 | (1) |
|
Displaying a SQL Compact Table in a DataGrid |
|
|
243 | (1) |
|
|
244 | (1) |
|
Inserting, Updating, and Deleting Queries |
|
|
244 | (1) |
|
Adding an Edit and a View Form |
|
|
245 | (1) |
|
|
246 | (1) |
|
A Media Playlist List Application |
|
|
247 | (3) |
|
|
249 | (1) |
|
Text File Data and XML Serialization |
|
|
250 | (4) |
|
Reading and Writing to a Text File |
|
|
250 | (2) |
|
|
252 | (2) |
|
Building the Managed Code Data Application (Text and XML) |
|
|
254 | (3) |
|
Building a Managed Code Remote Database Application |
|
|
257 | (4) |
|
|
257 | (1) |
|
Writing Fracks to a Remote SQL Server |
|
|
257 | (2) |
|
Reading Tracks from a Remote SQL Server |
|
|
259 | (2) |
|
Building a Managed Code Compact Database Application |
|
|
261 | (3) |
|
Writing Tracks to a Compact Database File |
|
|
261 | (2) |
|
Reading Tracks from a Compact Database File |
|
|
263 | (1) |
|
|
264 | (3) |
|
Chapter 21 Silverlight For Windows Embedded |
|
|
267 | (8) |
|
Silverlight: User Interface Development Framework |
|
|
267 | (1) |
|
Silverlight for Windows Embedded |
|
|
268 | (1) |
|
Development Environment and Tools |
|
|
269 | (4) |
|
|
269 | (1) |
|
XAML: Extensible Application Markup Language |
|
|
270 | (2) |
|
|
272 | (1) |
|
Contract Between Designer and Application Developer |
|
|
273 | (1) |
|
|
273 | (1) |
|
|
274 | (1) |
|
Chapter 22 Silverlight For Windows Embedded Application Examples |
|
|
275 | (14) |
|
Prerequisites and Preparation |
|
|
275 | (1) |
|
Develop a Compact 7 OS Design with Silverlight Support |
|
|
276 | (1) |
|
Develop the SWE Application Project Using Expression Blend 3 |
|
|
277 | (2) |
|
Port a XAML Code Project to Native Code Using Windows Embedded Silverlight Tools |
|
|
279 | (2) |
|
Add the SWE Application as a Subproject, Compile, and Launch |
|
|
281 | (2) |
|
Add Application as Subproject |
|
|
281 | (1) |
|
Build and Compile a Subproject Application |
|
|
281 | (1) |
|
Launch the Subproject Application on the Target Device |
|
|
282 | (1) |
|
Add Event Handler to Silverlight XAML Code Project |
|
|
283 | (2) |
|
Update the SWE Application Subproject |
|
|
285 | (1) |
|
|
285 | (2) |
|
Update the SWE Application Subproject to Include Animation |
|
|
287 | (1) |
|
|
288 | (1) |
|
Chapter 23 Auto Launching Applications |
|
|
289 | (8) |
|
Configuring the Registry to Auto Launch Application |
|
|
290 | (2) |
|
Understanding the Compact 7 Startup Registry |
|
|
290 | (1) |
|
Configure Registry to Launch Application During Startup |
|
|
291 | (1) |
|
Auto Launch Application from Startup Folder |
|
|
292 | (1) |
|
Using the AutoLaunch Component |
|
|
293 | (1) |
|
AutoLaunch Multiple Applications |
|
|
294 | (1) |
|
|
295 | (2) |
|
Chapter 24 Application Deployment Options |
|
|
297 | (8) |
|
Deploying a Compact 7 Applications |
|
|
297 | (1) |
|
|
298 | (3) |
|
Deploying an Application: CAB Installable Package |
|
|
298 | (1) |
|
Deploying an Application: Local Storage |
|
|
299 | (1) |
|
Deploying an Application: Compiled as Part of the OS Image |
|
|
300 | (1) |
|
Deploying an Application: Hybrid Between Compiled as Part of the OS Image and Local Storage |
|
|
300 | (1) |
|
|
301 | (4) |
|
PART IV DEPLOY WINDOWS EMBEDDED COMPACT 7 DEVICES |
|
|
|
Chapter 25 Deploy Os Run-Time Images |
|
|
305 | (8) |
|
|
305 | (3) |
|
|
306 | (1) |
|
Removable Storage: USB Flash Storage |
|
|
307 | (1) |
|
Fixed Storage: Hard Drive, IDE Flash, and Compact Flash |
|
|
307 | (1) |
|
|
308 | (1) |
|
Deploying an OS Run-time Image |
|
|
308 | (4) |
|
Image Deployment on RISC Platforms |
|
|
309 | (3) |
|
|
312 | (1) |
|
|
313 | (8) |
|
|
313 | (1) |
|
Ethernet Bootloader (Eboot) |
|
|
314 | (1) |
|
Serial Bootloader (Sboot) |
|
|
315 | (1) |
|
|
315 | (1) |
|
|
316 | (1) |
|
Compact 7 Bootloader Framework |
|
|
317 | (2) |
|
|
319 | (2) |
|
|
321 | (6) |
|
BIOSLoader Startup Parameters |
|
|
321 | (1) |
|
BIOSLoader Files and Utility |
|
|
322 | (1) |
|
|
323 | (2) |
|
Boot Sector Image: BSECT.IMG |
|
|
323 | (1) |
|
|
323 | (1) |
|
|
324 | (1) |
|
Preparing a Storage Device with BIOSLoader |
|
|
324 | (1) |
|
|
324 | (1) |
|
Windows CE Splash Generator |
|
|
325 | (1) |
|
|
325 | (2) |
|
Chapter 28 The Diskprep Power Toy |
|
|
327 | (12) |
|
Prerequisites and Preparation |
|
|
328 | (1) |
|
DiskPrep to Launch EBOOT.BIN |
|
|
328 | (1) |
|
DiskPrep to Launch NK.BIN |
|
|
328 | (1) |
|
|
328 | (7) |
|
Configuring Compact Flash with BIOSLoader for eBox-3310A |
|
|
329 | (4) |
|
Configuring Virtual Hard Disk with BIOSLoader for Virtual PC |
|
|
333 | (2) |
|
|
335 | (4) |
|
PART V DEVICE DRIVERS, BOOT LOADER, BSP, AND OAL DEVELOPMENT |
|
|
|
Chapter 29 An Overview Of Device Drivers |
|
|
339 | (10) |
|
|
339 | (4) |
|
|
340 | (3) |
|
Operating System Structure |
|
|
343 | (1) |
|
An Operating System as Interrupts |
|
|
343 | (1) |
|
An Operating System as Drivers |
|
|
343 | (1) |
|
Windows Embedded Compact Drivers |
|
|
343 | (4) |
|
|
344 | (1) |
|
|
344 | (1) |
|
|
344 | (1) |
|
Drivers in the Compact 7 Catalog |
|
|
345 | (2) |
|
|
347 | (1) |
|
Custom Driver Development |
|
|
347 | (1) |
|
Use a Third-Party Driver Binary |
|
|
348 | (1) |
|
|
348 | (1) |
|
|
348 | (1) |
|
Chapter 30 Device Driver Architectures |
|
|
349 | (18) |
|
Introducing Device Driver Architectures |
|
|
349 | (4) |
|
What Is a Hardware Device Driver? |
|
|
349 | (1) |
|
What Then Is a Virtual Device Driver? |
|
|
350 | (1) |
|
|
351 | (1) |
|
|
352 | (1) |
|
Kernel and User Driver Modes |
|
|
353 | (3) |
|
Native and Stream Drivers |
|
|
356 | (2) |
|
Monolithic and Layered Driver Models |
|
|
358 | (2) |
|
|
358 | (1) |
|
|
358 | (2) |
|
Monolithic Versus Layered Drivers |
|
|
360 | (1) |
|
Stream, Block, Bus, and USB Drivers |
|
|
360 | (2) |
|
How to Check if the Bluetooth Stack Is Loaded |
|
|
362 | (3) |
|
Using the Compact 7 Bluetooth Components |
|
|
365 | (1) |
|
|
366 | (1) |
|
|
367 | (26) |
|
|
367 | (3) |
|
Compact 7 Interrupt Architecture |
|
|
370 | (4) |
|
|
370 | (1) |
|
|
371 | (1) |
|
Interrupt Service Routine (ISR) |
|
|
371 | (1) |
|
Interrupt Service Thread (IST) |
|
|
371 | (1) |
|
|
371 | (1) |
|
System Interrupts and Hardware Interrupts |
|
|
372 | (1) |
|
|
373 | (1) |
|
|
374 | (5) |
|
|
375 | (1) |
|
Using WatchDog Timers in System Development |
|
|
376 | (1) |
|
The Vortex86 SoC Watchdog Timer |
|
|
376 | (2) |
|
The Compact 7 Message Queue API |
|
|
378 | (1) |
|
A Watchdog Timer Driver and Application |
|
|
379 | (8) |
|
|
379 | (2) |
|
|
381 | (3) |
|
|
384 | (3) |
|
Using the WDT Test Application |
|
|
387 | (1) |
|
Creating a Console Application with a Dynamic Link Library |
|
|
388 | (3) |
|
|
389 | (1) |
|
|
389 | (2) |
|
|
391 | (1) |
|
|
391 | (2) |
|
Chapter 32 Stream Interface Drivers |
|
|
393 | (24) |
|
|
393 | (3) |
|
|
393 | (1) |
|
|
394 | (1) |
|
|
395 | (1) |
|
|
395 | (1) |
|
|
395 | (1) |
|
|
396 | (1) |
|
|
396 | (1) |
|
|
396 | (1) |
|
Stream Driver Architecture |
|
|
396 | (1) |
|
|
397 | (4) |
|
Stream Driver Function Details |
|
|
399 | (2) |
|
Stream Driver Configuration |
|
|
401 | (4) |
|
Driver Naming Conventions |
|
|
401 | (1) |
|
|
402 | (2) |
|
|
404 | (1) |
|
|
404 | (1) |
|
|
404 | (1) |
|
Imaging a Developmental Driver |
|
|
405 | (1) |
|
|
405 | (2) |
|
|
405 | (2) |
|
|
407 | (1) |
|
|
407 | (2) |
|
Application Streaming APIs |
|
|
409 | (1) |
|
|
409 | (1) |
|
|
410 | (5) |
|
Power Management Interface |
|
|
411 | (1) |
|
|
411 | (2) |
|
Class Power Management Interfaces |
|
|
413 | (1) |
|
Compact 7 Power Management Architecture |
|
|
413 | (2) |
|
An Application to Test if a Stream is Loaded |
|
|
415 | (1) |
|
|
415 | (2) |
|
Chapter 33 Developing A Stream Interface Driver |
|
|
417 | (32) |
|
Stream Interface Driver Development Overview |
|
|
418 | (3) |
|
The Stream Interface Functions |
|
|
421 | (2) |
|
|
422 | (1) |
|
A Stream Driver with Open Context |
|
|
422 | (1) |
|
|
423 | (1) |
|
A Simple Stream Driver Project |
|
|
423 | (1) |
|
A Compact 7 Stream Driver Project |
|
|
424 | (9) |
|
|
426 | (1) |
|
The Project Parameter Files |
|
|
427 | (2) |
|
|
429 | (1) |
|
|
430 | (3) |
|
Building a Stream Driver for Testing |
|
|
433 | (1) |
|
Test the String Buffer Stream Driver |
|
|
434 | (1) |
|
|
434 | (6) |
|
|
435 | (1) |
|
|
436 | (4) |
|
|
440 | (1) |
|
Driver Context and Shared Memory |
|
|
440 | (1) |
|
Registry Access from a Driver |
|
|
441 | (2) |
|
Implementing Power Management |
|
|
443 | (4) |
|
|
447 | (2) |
|
Chapter 34 Stream Driver Api And Device Driver Testing |
|
|
449 | (18) |
|
|
449 | (1) |
|
|
450 | (1) |
|
|
451 | (1) |
|
|
452 | (1) |
|
|
453 | (4) |
|
|
454 | (1) |
|
|
454 | (1) |
|
|
454 | (2) |
|
Turning Debug Zones On and Off |
|
|
456 | (1) |
|
|
457 | (1) |
|
|
457 | (1) |
|
Stream Driver API and Test Applications |
|
|
458 | (3) |
|
|
458 | (1) |
|
Loading the Stream Driver |
|
|
458 | (3) |
|
Windows Embedded Test Kit (CTK) |
|
|
461 | (3) |
|
Other Compact 7 Debugging Features |
|
|
464 | (1) |
|
|
464 | (1) |
|
|
465 | (1) |
|
|
465 | (1) |
|
|
466 | (1) |
|
Chapter 35 The Target System |
|
|
467 | (20) |
|
|
467 | (1) |
|
Some Compact 7 Target Boards |
|
|
468 | (1) |
|
|
469 | (1) |
|
|
470 | (1) |
|
|
470 | (1) |
|
|
470 | (2) |
|
|
472 | (1) |
|
|
472 | (3) |
|
|
475 | (1) |
|
|
476 | (1) |
|
BSP Configuration Files and Folders |
|
|
476 | (2) |
|
|
478 | (1) |
|
|
479 | (1) |
|
Adding an IOCTL to the OAL |
|
|
479 | (5) |
|
|
480 | (1) |
|
|
480 | (1) |
|
Associate the IOCTL with Its Function Handler |
|
|
481 | (1) |
|
Implement the IOCTL Function Handler |
|
|
482 | (1) |
|
|
482 | (1) |
|
|
482 | (2) |
|
|
484 | (3) |
|
PART VI Advanced Application Development |
|
|
|
Chapter 36 INTRODUCTION TO REAL-TIME APPLICATIONS |
|
|
487 | (10) |
|
Real-Time Application Overview |
|
|
487 | (4) |
|
Time Determinism in an Embedded System |
|
|
488 | (2) |
|
Influence of the Operating System on Determinism |
|
|
490 | (1) |
|
Windows Embedded Compact 7 and Real Time |
|
|
491 | (4) |
|
|
492 | (1) |
|
Thread Scheduling and Synchronization |
|
|
493 | (1) |
|
Native Applications Runtime |
|
|
494 | (1) |
|
Managed Applications Runtime |
|
|
494 | (1) |
|
|
495 | (2) |
|
Chapter 37 A Simple Real-Time Application |
|
|
497 | (12) |
|
Developing a Simple Real-Time Application |
|
|
497 | (10) |
|
How To: Measure Execution Time |
|
|
498 | (1) |
|
The "Hello-Deterministic-World" Application |
|
|
499 | (7) |
|
Execution Time Assessment |
|
|
506 | (1) |
|
|
507 | (2) |
|
Chapter 38 Extending Low-Level Access To Managed Code |
|
|
509 | (22) |
|
The Native Managed Interface |
|
|
509 | (4) |
|
Typical Native Code Modules |
|
|
509 | (3) |
|
The Need for Managed Code Access |
|
|
512 | (1) |
|
Techniques for Low-Level Access to Managed Code |
|
|
513 | (17) |
|
|
513 | (11) |
|
Wrapper DLLs and COM Components |
|
|
524 | (6) |
|
|
530 | (1) |
|
Chapter 39 Extending Low-Level Access To Managed Code With Messages |
|
|
531 | (14) |
|
Communicating from Native to Managed Code |
|
|
531 | (13) |
|
|
532 | (5) |
|
|
537 | (7) |
|
|
544 | (1) |
|
Chapter 40 A Web Server Application |
|
|
545 | (18) |
|
Embedded Web Server with Compact 7 |
|
|
545 | (17) |
|
Servicing Embedded Devices |
|
|
546 | (1) |
|
Implementing a Dedicated Web Server |
|
|
546 | (4) |
|
Web Server Example: Accessing the Device Registry |
|
|
550 | (12) |
|
|
562 | (1) |
|
Chapter 41 A Usb Camera Application |
|
|
563 | (14) |
|
Using a USB Camera on Compact 7 |
|
|
563 | (11) |
|
Building CeWebCam in Compact 7 |
|
|
564 | (3) |
|
Using the USB Camera Inside an Application |
|
|
567 | (7) |
|
|
574 | (3) |
|
|
|
Chapter 42 DEVELOP A WINDOWS NETWORK PROJECTOR |
|
|
577 | (8) |
|
Windows Network Projector Application |
|
|
578 | (1) |
|
Developing a Windows Network Projector |
|
|
578 | (4) |
|
Create a Windows Network Projector OS Design |
|
|
578 | (1) |
|
Customize the Windows Network Projector OS Design |
|
|
579 | (1) |
|
Generate an OS Run-Time Image |
|
|
580 | (1) |
|
Deploy OS Run-time Image Using DiskPrep |
|
|
580 | (2) |
|
Using Windows Network Projector |
|
|
582 | (1) |
|
|
583 | (2) |
|
Chapter 43 Phidgets Devices |
|
|
585 | (16) |
|
|
585 | (2) |
|
Device Driver Project on Codeplex |
|
|
586 | (1) |
|
Phidgets Driver Component |
|
|
586 | (1) |
|
Phidgets Devices Application |
|
|
587 | (13) |
|
|
587 | (1) |
|
Develop an OS Design with Phidgets Support |
|
|
587 | (3) |
|
Develop a Phidgets Application in Managed Code |
|
|
590 | (9) |
|
Include the RFIDReader Application in the OS Run-time Image |
|
|
599 | (1) |
|
|
600 | (1) |
|
|
601 | (28) |
|
|
601 | (1) |
|
|
602 | (3) |
|
|
604 | (1) |
|
FTDI as the USB Interface to a System |
|
|
605 | (1) |
|
|
606 | (1) |
|
Virtual COM Port Driver (VCP) |
|
|
606 | (1) |
|
|
606 | (1) |
|
FTDI USB to SerialRegistry Settings |
|
|
606 | (1) |
|
CEComponentWiz: Adding Content to an Image |
|
|
607 | (3) |
|
|
608 | (1) |
|
|
608 | (1) |
|
|
608 | (1) |
|
|
609 | (1) |
|
FTDI Drivers as Catalog Items |
|
|
610 | (3) |
|
|
610 | (1) |
|
|
610 | (2) |
|
|
612 | (1) |
|
Third-Party FTDI Application Modules |
|
|
613 | (3) |
|
Serial Port Access from a Compact 7 Application |
|
|
616 | (2) |
|
A Custom FTDI Stream Driver |
|
|
618 | (10) |
|
Creating the Stream Driver |
|
|
619 | (4) |
|
The Ping and Mode Commands |
|
|
623 | (2) |
|
|
625 | (3) |
|
|
628 | (1) |
|
Chapter 45 Integrating Managed Code Projects |
|
|
629 | (10) |
|
|
629 | (2) |
|
|
630 | (1) |
|
Managed Code Applications and Windows Embedded Compact 7 |
|
|
631 | (1) |
|
Package a .NET Application for Inclusion in the OS Image |
|
|
632 | (1) |
|
Including a built Managed Code application in the OS image |
|
|
632 | (1) |
|
Deploy a .NET Application Directly over KITL |
|
|
633 | (2) |
|
Building to the Release Directory |
|
|
634 | (1) |
|
Include the Build of a Managed Code Application in the OS Build |
|
|
635 | (2) |
|
Including a Managed Code Application in the OS Build |
|
|
636 | (1) |
|
|
637 | (1) |
|
|
638 | (1) |
|
APPENDIX A VIRTUAL PC CONNECTIVITY |
|
|
639 | (6) |
|
Configure Virtual PC Connectivity |
|
|
639 | (3) |
|
|
639 | (2) |
|
Configure Static IP Addresses |
|
|
641 | (1) |
|
|
642 | (1) |
|
Virtual PC Information Resources |
|
|
643 | (2) |
|
APPENDIX B MICROSOFT RESOURCES |
|
|
645 | (4) |
|
|
645 | (1) |
|
|
646 | (1) |
|
Windows Embedded CE 6.0 USB Camera Driver |
|
|
646 | (1) |
|
Windows Embedded CE DiskPrep Power Toy |
|
|
646 | (1) |
|
Windows Embedded CE 6.0 XML Web Services WSDL Generator |
|
|
646 | (1) |
|
PipeTerm for Windows Embedded CE 6.0 and Virtual PC 2007 |
|
|
646 | (1) |
|
Remote Tools for Smart Devices |
|
|
646 | (1) |
|
|
646 | (1) |
|
|
647 | (1) |
|
|
647 | (1) |
|
Windows Embedded Compact Forums |
|
|
647 | (2) |
|
APPENDIX C COMMUNITY RESOURCES |
|
|
649 | (6) |
|
Windows Embedded Community |
|
|
649 | (1) |
|
http://www.Embedded101.com |
|
|
649 | (1) |
|
|
649 | (1) |
|
Community Projects for Compact 7 |
|
|
649 | (2) |
|
AutoLaunch for Windows Embedded Compact (CE) |
|
|
649 | (1) |
|
CEDriverWiz --- Windows Embedded CE Stream Driver Wizard |
|
|
650 | (1) |
|
CoreCon for Windows Embedded Compact (CE) |
|
|
650 | (1) |
|
FTDI Resources for Windows Embedded Compact/CE |
|
|
650 | (1) |
|
Managed Code4 Tools for Windows Embedded Compact |
|
|
650 | (1) |
|
Windows CE Component Wizard |
|
|
651 | (1) |
|
Windows CE Driver for Phidgets |
|
|
651 | (1) |
|
|
651 | (2) |
|
|
651 | (1) |
|
MobFx --- Mobile Application Development Framework |
|
|
651 | (1) |
|
|
651 | (1) |
|
|
652 | (1) |
|
OpenNETCF Autorun Manager for CE |
|
|
652 | (1) |
|
OpenNETCF MTConnect VirtualAgent |
|
|
652 | (1) |
|
|
652 | (1) |
|
|
652 | (1) |
|
Smart Device Information and Remote Processes Tool |
|
|
653 | (1) |
|
TFTP Server for Windows CE |
|
|
653 | (1) |
|
Windows CE Splash Generator |
|
|
653 | (1) |
|
Windows CE Utilities --- LoadDriver |
|
|
653 | (1) |
|
Windows CE Webcam Project |
|
|
653 | (1) |
|
|
653 | (2) |
|
http://www.Embeddedpc.net |
|
|
653 | (2) |
|
APPENDIX D EMBEDDED HARDWARE |
|
|
655 | (4) |
|
Embedded Hardware Consideration |
|
|
655 | (3) |
|
|
656 | (1) |
|
|
657 | (1) |
|
|
658 | (1) |
|
|
658 | (1) |
Index |
|
659 | |