I just wanted to put a note out that the second edition of "Programming Embedded Systems: with C and GNU Development Tools" from O'Reilly is now out. I am the co-author of the second edition.
The book is intended for newcomers to embedded software development, but also contains useful topics for seasoned developers. The book is filled with useful examples.
We used open source tools (GNU) and the Linux and eCos operating systems.
Additional information can be found online at
A summary of the chapter contents is included below.
We hope you enjoy the book!
Best regards, Anthony
- Chapter 1, Introduction, explains the field of embedded programming and lays out the parameters of the book, including the reference hardware used for examples.
?- Chapter 2, Getting to Know the Hardware, shows how to explore the documentation for your hardware and represent the components you need to interact with in C. ?
- Chapter 3, Your First Embedded Program, creates a simple blinking light application that illustrates basic principles of embedded programming. ?
- Chapter 4, Compiling, Linking, and Locating, goes over the ways that embedded systems differ from conventional computer systems during program building steps, covering such issues as cross compilers.
- Chapter 5, Downloading and Debugging, introduces the tools you'll need to iron out problems in both hardware and software.
- Chapter 6, Memory, describes the different types of memory developers choose for embedded systems and the issues involved in using each type.
- Chapter 7, Peripherals, introduces the notion of a device driver along with other coding techniques for working with devices.
- Chapter 8, Interrupts, covers this central are of working with peripherals.
- Chapter 9, Putting It All Together, combines the concepts and code from the previous chapter with convenience functions and a main program to create a loadable, testable application.
- Chapter 10, Operating Systems, introduces the reasons for adding a common operating system to a hardware system and the tasks of the operating system on embedded systems, including the important concept of tasks or threads.
- Chapter 11, eCos Examples, shows how to use some features of the eCos embedded operating system.
- Chapter 12, Embedded Linux Examples, accomplishes the same task as the previous chapter, but for the Linux operating system.
- Chapter 13, Extending Functionality, describes options for adding buses, networking and other communication features to a system. ?
- Chapter 14, Optimization Techniques, describes ways to decrease code size, reduce memory use, and conserve power.
- Appendix A, Arcom's VIPER-Lite Development Kit, describes the board used for the examples in this book and how to order one for yourself.
- Appendix B, Setting up Your Software Development Environment, gives basic instructions for loading the host software described in this book on your Windows or Linux computer.
- Appendix C, Building the GNU Software Tools, shows you how to compile the GNU development tools.
- Appendix D, Setting up the eCos Development Environment, shows you how to build an eCos library appropriate for your embedded system so you can compile programs to run on the system.
- Appendix E, Setting up Embedded Linux, describes how to install the embedded Linux tools for your Arcom system and build and run a program on it.