- Hardware/Software Partitioning
- Cross-Platform Development
- Firmware Debugging
- Performance Analysis
- Testing & Integration
Get into embedded systems programming with a clear understanding of the development cycle and the specialized aspects of writing and testing software in this environment. Learn how to apply your development skills to new software and hardware tools you'll need to work effectively in this cross-development environment.
Learn the design considerations unique to embedded systems, a few of which include:
- Processor selection for optimal cost, system performance, and testability
- Software failure, the need for testing, and the use of the watchdog timer
- Writing code that directly manipulates the device hardware
- Code placement and memory space limitations
- Parallel HW/SW development and the hazards of system integration
- The need for dedicated debugging circuitry
- Tool requirements and the implications of tool intrusion
You get the key methods and technologies for each phase of the development process: specification, partition, design, integration, validation, and maintenance and upgrade. With these you will be able to:
- Appreciate the consequences of early design decisions
- Anticipate the potential pitfalls you may encounter in this new environment
- Make more effective use of embedded systems tools
- Survive the challenges in the parallel development process
And you will be prepared for the challenges of integrating your untested software with untested hardware by effectively using logic analyzers and ICEs (integrated circuit emulators) in basic debugging and test coverage measurement.
Dr. Arnold Berger holds a Ph.D. in materials science from Cornell University. During his years at Hewlett-Packard, he served as project manager for the HP64700 family of PC-based emulators and worked on the Teramac, an FPGA-based reconfigurable hardware accelerator. He subsequently managed third party tool support for AMD's 29K line of embedded microprocessors and served as director of research and development at toolmaker Applied Microsystems Corporation. Most recently he has assumed a full-time teaching role at University of Washington at Bothell, where he is helping to define and establish an embedded systems curriculum.
Table of Contents
Preface
Introduction
Chapter 1 The Embedded Design Life
Cycle
Chapter 2 The Selection Process
Chapter 3 The Partitioning
Decision
Chapter 4 The Development Environment
Chapter 5 Special Software
Techniques
Chapter 6 A Basic Toolset
Chapter 7 BDM, JTAG, and
Nexus
Chapter 8 The ICE - An Integrated Solution
Chapter 9
Testing
Chapter 10 The Future
Index