Programming Embedded Systems, 2nd Edition
With C and GNU Development Tools
Publisher: O'Reilly Media
Final Release Date: October 2006
Pages: 336

If you have programming experience and a familiarity with C--the dominant language in embedded systems--Programming Embedded Systems, Second Edition is exactly what you need to get started with embedded software. This software is ubiquitous, hidden away inside our watches, DVD players, mobile phones, anti-lock brakes, and even a few toasters. The military uses embedded software to guide missiles, detect enemy aircraft, and pilot UAVs. Communication satellites, deep-space probes, and many medical instruments would have been nearly impossible to create without embedded software.

The first edition of Programming Embedded Systems taught the subject to tens of thousands ofpeople around the world and is now considered the bible of embedded programming. This second edition has been updated to cover all the latest hardware designs and development methodologies.

The techniques and code examples presented here are directly applicable to real-world embedded software projects of all sorts. Examples use the free GNU software programming tools, the eCos and Linux operating systems, and a low-cost hardware platform specially developed for this book. If you obtain these tools along withProgramming Embedded Systems, Second Edition, you'll have a full environment for exploring embedded systems in depth. But even if you work with different hardware and software, the principles covered in this bookapply.

Whether you are new to embedded systems or have done embedded work before, you'll benefit from the topics in this book, which include:

  • How building and loading programs differ from desktop or servercomputers
  • Basic debugging techniques--a critical skill when working withminimally endowed embedded systems
  • Handling different types of memory
  • Interrupts, and the monitoring and control of on-chip and externalperipherals
  • Determining whether you have real-time requirements, and whetheryour operating system and application can meet those requirements
  • Task synchronization with real-time operating systems and embeddedLinux
  • Optimizing embedded software for size, speed, and power consumption
  • Working examples for eCos and embedded Linux

So whether you're writing your first embedded program, designing thelatest generation of hand-held whatchamacalits, or managing the peoplewho do, this book is for you. Programming EmbeddedSystems will help you develop the knowledge and skills youneed to achieve proficiency with embedded software.

Praise for the first edition:

"This lively and readable book is the perfect introduction for those venturing into embedded systems software development for the first time. It provides in one place all the important topics necessary to orient programmers to the embedded development process.
--Lindsey Vereen, Editor-in-Chief, Embedded Systems Programming
Table of Contents
Product Details
About the Author
Colophon
Recommended for You
Customer Reviews

REVIEW SNAPSHOT®

by PowerReviews
oreillyProgramming Embedded Systems, 2nd Edition
 
3.5

(based on 8 reviews)

Ratings Distribution

  • 5 Stars

     

    (1)

  • 4 Stars

     

    (4)

  • 3 Stars

     

    (2)

  • 2 Stars

     

    (0)

  • 1 Stars

     

    (1)

Reviewed by 8 customers

Sort by

Displaying reviews 1-8

Back to top

(3 of 3 customers found this review helpful)

 
3.0

Second edition not as good as the first

By Dave

from Oregon

About Me Developer, Maker

Verified Buyer

Pros

    Cons

    • Examples Much Too Basic

    Best Uses

    • Novice
    • Student

    Comments about oreilly Programming Embedded Systems, 2nd Edition:

    I own the first-edition paper book and I bought the upgrade to the second-edition ebook.

    I'm disappointed in the (massive) changes between editions. It's not that the authors didn't put enough energy into it. Maybe the opposite... seems like maybe they should have written a new book instead.

    - The author made a good case in the first edition for the careful use of a subset of C++, and the examples were written in C++. In the second edition, everything is written in C. There are a zillion books on embedded programming in C. The first edition stood out as a good example of using simplified C++ in embedded systems. The wild success of the Arduino environment (which is essentially the same C++ subset) attests to the need for such a book.

    - The level of abstraction has changed. The original book had a chapter on writing an RTOS. There were appropriate warnings about why writing your own in-house RTOS is often inappropriate, but also appropriate comments as to why working with or writing a 'toy' RTOS is very educational. This chapter was completely removed from the second edition, and replaced with chapters on using a couple of open-source RTOSes.

    - The focus is on embedded systems and discusses hardware and how the embedded developer works closely with the hardware. But the second edition uses eCos and embedded Linux as OS examples, which are larger UNIX-like OSes. If these are even a consideration in your application, then much of the earlier material about working directly with the hardware or possibly writing your app on the bare metal without an OS will be virtually useless to you, and much more time should have been spent fleshing out working examples. The examples in this book really don't go beyond the traditional and done-to-death "blink an LED" examples.

    In short, it's really a different book for a different audience. The original book would have benefitted from a second edition to be given some updates (for instance, to cover ARM boards instead of x86 SBCs, since x86 has rapidly fallen from favor as ARM has taken off). But to completely change the focus and methodology was a disappointment. The second edition feels like it's targeting a less-sophisticated audience, and doesn't have enough focus to be more than a survey of the material to whet your appetite.

    (1 of 1 customers found this review helpful)

     
    5.0

    Great Book,must read for Intrepid Coders

    By The Intrepid Coder

    from Tempe, Az

    About Me Developer

    Verified Reviewer

    Pros

      Cons

        Best Uses

          Comments about oreilly Programming Embedded Systems, 2nd Edition:

          I have been an embedded programmer for a few years, I learned mostly thanks to good mentoring within my company & learning whatever I had to on the fly, the internet is always useful.

          2012 was a busy fulfilling year for me at work so in December 2012 I decided I needed to fill some gaps in my embedded programming design knowledge, I got the hard copy of "making embedded systems" & got the pdf of "Programming Embedded Systems". I found both of these books to be extremely useful. "Programming embedded systems" touched on many topics I have had to deal with & filled in the gaps. -Neil

          (2 of 2 customers found this review helpful)

           
          3.0

          'Very good' if it wasn't for the the sub-standard hardware sales channel

          By Anonymous

          from Undisclosed

          Comments about oreilly Programming Embedded Systems, 2nd Edition:

          I would easily have given this book a very good if it wasn't for the lousy hw sales channel.

          I got 2 prices: 595 EUR or 595 USD depending on whom I asked. Obviously I picked the USD one. e-mails were continuously ignored until I just sat down and ordered one board (of course I got no response on the order, but when I called the sales person he said it was shipped which was correct).

          Now I got the board and things are looking up.

          (5 of 5 customers found this review helpful)

           
          1.0

          Beware!

          By FordyUK

          from Undisclosed

          Comments about oreilly Programming Embedded Systems, 2nd Edition:

          The book seems fine except that buying the hardware is almost impossible. Arcom trade in the UK as Eurotech. When I rang them for prices on the Viper-Lite board (still advertised on the website) they said that it wasn't in production any more. I tried to contact someone else but was then told that I would need to buy 100 units and it would take 6 months to deliver! Very disappointing to think that this book (or at least this version) is less than 2 years old and is now completely useless as the hardware it describes cannot be purchased. A real shame as the book seems to be well written and interesting.

          (2 of 2 customers found this review helpful)

           
          4.0

          So far the book is reads well but the board price skyrocketed....

          By Robert

          from Undisclosed

          Comments about oreilly Programming Embedded Systems, 2nd Edition:

          Yes, the price has skyrocketed. Someone has posted an errata to O'Reilly.

          I spoke with Arcom/Eurotech (5/20/08) and they emailed a quote. The Viper-Lite dev kit lists for $997 and the 40% discount brings it to $598.

          (Contact phone number in book is correct...email link on their web page isn't)

          (3 of 3 customers found this review helpful)

           
          4.0

          Programming Embedded Systems

          By Martin

          from Undisclosed

          Comments about oreilly Programming Embedded Systems, 2nd Edition:

          This book assumes nothing. I'm a communications Engineer with a new career in Inertial Navigation Systems. This book was a great intro course into what one can expect when starting to work with embedded systems.

          I appreciate the basic approach: it is a gentle learning experience which you can read off-and-on over a few weeks if necessary. I recommend it and urge readers to keep a marking pen handy, it can be a good reference source while you get up to speed.

          You DO NOT need a hands-on system to learn from this book.

          (1 of 1 customers found this review helpful)

           
          4.0

          Got me up and running right away

          By Anonymous

          from Undisclosed

          Comments about oreilly Programming Embedded Systems, 2nd Edition:

          First of all, this is a hands on book. It does provide an interesting read but you really need to get yourself the Arcom VIPER-Lite + Addon board combo which all the examples have been designed for. I got offered a discount on the hardware when I mentioned the book to the Arcom sales team (who, btw, are very friendly and helpful) and as of June 2007 the package cost £175 (ex. vat). However, this is really a great board and you should certainly take a look at it (Arcom's engineers rock btw) - http://www.arcom.com

          My technique when reading this book was to first read through the book cover to cover before hacking away at the examples. I am currently working through the examples which can be downloaded from http://www.oreilly.com/catalog/embsys2/ and on that page there is a link to "examples". However, there is a lot of content in the examples files that simply isn't included within the pages of the book. Download and print off the source would be my advice.

          As one of the other reviewers mentioned, the book does tend to gloss over some important aspects which I would have liked to have seen more of. More work on ISR's would have been brilliant and a load more on developing drivers under linux. I would have liked to have seen more advanced techniques to get the most out of my board - like recompiling the kernel and a greater discussion on redboot. A walkthrough of the contents of a mapfile would have saved me searching elsewhere and some lines in the example source code and makefiles are unreferenced at all in the book. You will need to have at least minimal exposure to standard gcc toolchains although the book does cover the fundamentals. Finally, I would have also liked to have seen more reference made to keeping deadlines when making programs executing under linux on the target. Whilst the version of linux on the arcom board uses pthreads and has therefore no direct knowledge of deadlines...I would have liked to have seen references made to techniques I can use in my programs to help prevent deadlines from failing. The book however does discuss this in more detail when discussing eCos however, as the board supplied by Arcom came with linux - this is practically irrelevant to me.

          So now, the book uses two methods for building applications for the Arcom board (well, three if you include the eCos toolchain...but my board came with linux so i'll stick to that). You can either build your programs to be loaded directly at position x in RAM and then executed by the target directly (through redboot)...or, you can build your programs to be executed under linux. The examples packages at the link above contain only the toolchain to build programs for direct execution i.e. without linux control and these are easily installed on your development host. The linux cross compile toolchain to build applications for execution under linux on the target is included on the CD which comes with the development pack of the Arcom board. I haven't quite reached installing that toolchain on my host system yet but i'm definately looking forward to building my programs with it. Embedded linux - here I come...

          I suppose what I was looking for when I bought this book was a manual for the Arcom board...and what I actually got was a detailed insight into programming embedded systems using the Arcom board as a hands on example. I'm happy with what I got...actually...I'm more than happy...if only you could see me right now :). Thank you Barr and Massa for a great book!

          (1 of 1 customers found this review helpful)

           
          4.0

          Great Introduction to Embedded Systems Programming.

          By Joshua Benuck

          from Undisclosed

          Comments about oreilly Programming Embedded Systems, 2nd Edition:

          This book gives an excellent overview of programming embedded systems. It provides numerous examples of real-world hands-on embedded programming. I'd recommend that you have experience in C. Experience with operating systems concepts (such as interrupt service routines) would also be helpful.

          Unlike usual programming books, you won't be able to pick up the book, download something, and start working. You'll need to have an embedded system that you can use. The authors use a system from Arcom that will run you about $300. I've not used it and was very wary about it when I first started reading, but as I read through the various examples I gained a great appreciation for the system. It looks like a great way to gain hands-on experience with embedded programming.

          Before getting this book I read through the Lego Mindstorm NXT documentation and felt very lost. I didn't understand the symbols on the schematics and they used strange acronyms (like I2C and PWM). I also have an Iguanaworks USB infrared transceiver. I bought it to use in a MythTV system I am building. This book has enabled me to understand the schematics of both the Mindstorm and the transceiver as well as the documentation of both systems. I now feel ready to do my own embedded systems programming.

          That said, I did not like everything in this book. They gloss over areas that I felt would have helped me (such as how to use a JTAG adapter and how to create an interrupt service routine under Linux). There are areas where the writing does not flow well and is redundant. The book switched from using an embedded x86 processor in the first edition to using an ARM processor in the second and there are still references to the old processor.

          Even with its faults I am glad I got this book. It filled in many of the gaps that I have as a software engineer who is wanting to learn about embedded systems programming. I feel a whole new world has just been opened up to me and I can't wait to jump in.

          Displaying reviews 1-8

          Back to top

           
          Buy 2 Get 1 Free Free Shipping Guarantee
          Buying Options
          Immediate Access - Go Digital what's this?
          Ebook: $39.99
          Formats:  APK, DAISY, ePub, Mobi, PDF