Programming Embedded Systems in C and C++ |
|
|
|
| Tuesday, 01 July 2008 | |
|
Programming Embedded Systems in C and C++by Michael Barr Books OverviewEmbedded software is in almost every electronic device designed today. There is software hidden away inside our watches, microwaves, VCRs, cellular telephones, and pagers; the military uses embedded software to guide smart missiles and detect enemy aircraft; communications satellites, space probes, and modern medicine would be nearly impossible without it. Of course, someone has to write all that software, and there are thousands of computer scientists, electrical engineers, and other professionals who actually do. Each embedded system is unique and highly customized to the application at hand. As a result, embedded systems programming is a widely varying field that can take years to master. However, if you have some programming experience and are familiar with C or C++, you're ready to learn how to write embedded software. The hands-on, no-nonsense style of this book will help you get started by offering practical advice from someone who's been in your shoes and wants to help you learn quickly. The techniques and code examples presented here are directly applicable to real-world embedded software projects of all sorts. Even if you've done some embedded programming before, you'll still benefit from the topics in this book. Table of Content Dedication Preface Why I Wrote This Book Intended Audience Organization Conventions, Typographical and Otherwise Obtaining the Examples Online How to Contact Us Personal Comments and Acknowledgments Chapter 1. Introduction 1.1 What Is an Embedded System? 1.2 Variations on the Theme 1.3 C: The Least Common Denominator 1.4 A Few Words About Hardware Chapter 2. Your First Embedded Program 2.1 Hello, World! 2.2 Das Blinkenlights 2.3 The Role of the Infinite Loop Chapter 3. Compiling, Linking, and Locating 3.1 The Build Process 3.2 Compiling 3.3 Linking 3.4 Locating 3.5 Building das Blinkenlights Chapter 4. Downloading and Debugging 4.1 When in ROM 4.2 Remote Debuggers 4.3 Emulators 4.4 Simulators and Other Tools Chapter 5. Getting to Know the Hardware 5.1 Understand the Big Picture 5.2 Examine the Landscape 5.3 Learn How to Communicate 5.4 Get to Know the Processor 5.5 Study the External Peripherals 5.6 Initialize the Hardware Chapter 6. Memory 6.1 Types of Memory 6.2 Memory Testing 6.3 Validating Memory Contents 6.4 Working with Flash Memory Chapter 7. Peripherals 7.1 Control and Status Registers 7.2 The Device Driver Philosophy 7.3 A Simple Timer Driver 7.4 Das Blinkenlights, Revisited Chapter 8. Operating Systems 8.1 History and Purpose 8.2 A Decent Embedded Operating System 8.3 Real-Time Characteristics 8.4 Selection Process Chapter 9. Putting It All Together 9.1 Application Overview 9.2 Flashing the LED 9.3 Printing "Hello, World!" 9.4 Working with Serial Ports 9.5 The Zilog 85230 Serial Controller Chapter 10. Optimizing Your Code 10.1 Increasing Code Efficiency 10.2 Decreasing Code Size 10.3 Reducing Memory Usage 10.4 Limiting the Impact of C++ Appendix A. Arcom's Target188EB Glossary |













