Foreword |
|
xi | |
Preface |
|
xv | |
What's on the CD-ROM? |
|
xxi | |
|
|
1 | (48) |
|
What Makes an Embedded Application Tick? |
|
|
2 | (7) |
|
Memory in Embedded Systems |
|
|
9 | (4) |
|
|
13 | (6) |
|
How Software Influences Hardware Design |
|
|
19 | (4) |
|
Migrating Your Software to a New Processor Architecture |
|
|
23 | (8) |
|
Testing Computers on Wheels |
|
|
31 | (2) |
|
Embedded Software for Transportation Applications |
|
|
33 | (4) |
|
How to Choose a CPU for Your System on Chip Design |
|
|
37 | (3) |
|
An Introduction to USB Software |
|
|
40 | (5) |
|
|
45 | (4) |
|
|
49 | (42) |
|
Emerging Technology for Embedded Systems Software Development |
|
|
50 | (6) |
|
Making Development Tool Choices |
|
|
56 | (11) |
|
Eclipse---Bringing Embedded Tools Together |
|
|
67 | (4) |
|
A Development System That Crosses RTOS Boundaries |
|
|
71 | (4) |
|
Embedded Software and UML |
|
|
75 | (12) |
|
Model-Based Systems Development with xtUML |
|
|
87 | (4) |
|
|
91 | (31) |
|
Programming for Exotic Memories |
|
|
92 | (5) |
|
Self-Testing in Embedded Systems |
|
|
97 | (5) |
|
A Command-Line Interpreter |
|
|
102 | (10) |
|
Traffic Lights: An Embedded Software Application |
|
|
112 | (5) |
|
|
117 | (5) |
|
|
122 | (56) |
|
|
123 | (3) |
|
Using C Function Prototypes |
|
|
126 | (3) |
|
Interrupt Functions and ANSI Keywords |
|
|
129 | (5) |
|
Optimization for RISC Architectures |
|
|
134 | (8) |
|
|
142 | (4) |
|
Programming Floating-Point Applications |
|
|
146 | (3) |
|
Looking at C---A Different Perspective |
|
|
149 | (3) |
|
Reducing Function Call Overhead |
|
|
152 | (4) |
|
Structure Layout---Become an Expert |
|
|
156 | (17) |
|
Memory and Programming in C |
|
|
173 | (2) |
|
Pointers and Arrays in C and C++ |
|
|
175 | (3) |
|
|
178 | (59) |
|
C++ in Embedded Systems---A Management Perspective |
|
|
179 | (3) |
|
Why Convert from C to C++? |
|
|
182 | (7) |
|
|
189 | (11) |
|
C++ Templates---Benefits and Pitfalls |
|
|
200 | (6) |
|
Exception Handling in C++ |
|
|
206 | (8) |
|
Looking at Code Size and Performance with C++ |
|
|
214 | (7) |
|
|
221 | (11) |
|
Using Nonvolatile RAM with C++ |
|
|
232 | (5) |
|
|
237 | (16) |
|
|
238 | (4) |
|
Visualizing Program Models of Embedded Systems |
|
|
242 | (5) |
|
Event Handling in Embedded Systems |
|
|
247 | (3) |
|
Programming for Interrupts |
|
|
250 | (3) |
|
Real-Time Operating Systems |
|
|
253 | (48) |
|
Debugging Techniques with an RTOS |
|
|
254 | (11) |
|
A Debugging Solution for a Custom Real-Time Operating System |
|
|
265 | (5) |
|
Debugging---Stack Overflows |
|
|
270 | (1) |
|
Bring in the Pros---When to Consider a Commercial RTOS |
|
|
271 | (6) |
|
|
277 | (7) |
|
Introduction to RTOS Driver Development |
|
|
284 | (3) |
|
Scheduling Algorithms and Priority Inversion |
|
|
287 | (4) |
|
Time versus Priority Scheduling |
|
|
291 | (3) |
|
|
294 | (3) |
|
|
297 | (4) |
|
|
301 | (54) |
|
|
302 | (5) |
|
|
307 | (7) |
|
|
314 | (5) |
|
IPv6---The Next Generation Internet Protocol |
|
|
319 | (7) |
|
|
326 | (7) |
|
|
333 | (4) |
|
PPP---Point-to-Point Protocol |
|
|
337 | (7) |
|
|
344 | (4) |
|
|
348 | (3) |
|
|
351 | (4) |
|
Embedded Systems and Programmable Logic |
|
|
355 | (22) |
|
FPGAs and Processor Cores: The Future of Embedded Systems? |
|
|
356 | (4) |
|
FPGA-Based Design Delivers Customized Embedded Solutions |
|
|
360 | (8) |
|
Xilinx MicroBlaze Soft Core Processor |
|
|
368 | (6) |
|
Real-Time Operating Systems for FPGA |
|
|
374 | (3) |
Afterword |
|
377 | (2) |
Index |
|
379 | |