Programming Embedded Systems: With C and GNU Development Tools, 2nd Edition

Programming Embedded Systems: With C and GNU Development Tools, 2nd Edition
Authors
Michael Barr, Anthony Massa
ISBN
0596009836
Published
01 Oct 2006
Purchase online
amazon.com

If you have programming experience and a familiarity with i-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.

Page 2 of 2
  1. Editorial Reviews
  2. Customer Reviews

Customer Reviews

Soon Yau Cheong said
Embedded system requires very diversified skillsets and I don't believe all of them can be covered in one book. In my opinion, the skilset of embedded system programming can be loosely grouped into two categories which are 8-bit and 32-bit. Engineers writing software for 8-bit microcontroller would usually be more involved in hardware details such as keypad debouncing, soft I2C etc. On the other hand, their 32-bit counterpart would spend more time designing more complex software that may includes bootloader, structured programming and RTOS. This book is more appropriate for those who intend to use 32-bit processor i.e. ARM rather than 8-bit microcontrollers i.e. 8051 and PIC.

I had quite some years of experience developing PIC/8051 firmware on Windwos platform, but did not had any experience on Unix. I found the book is particular useful in introducing building project on Unix platform, it is brief, but that's exactly what I wanted - short and simple.

Chapters on hardware, tool chain, memory, interrupts and RTOS are quite fundamental but could come handy to beginner in embedded world despite there are many other books that excel in these areas. However, I found Chapter 7 "Peripherals" is well written to teach you how to write a device driver. I believe this is something new to learn for engineers with either software or hardware background. Hardware engineers tend to access the hardware registers directly. On the other hand, softawre guys may not be familiar with low-level hardware. The authors talked about the device driver philosophy and elaborate on how to use struct and bitfield to provide hardware abstraction. Finally, a serial port device driver is presented as an example.

As a conclusion, this is a very good introductory book to 32-bit embedded programming, or better still if you use Unix/Linux/eCOS. For those who want to learn deeper about RTOS and hardware (say, how to write soft I2C, keypad/button debounce, LCD driver), you wouldn't gain much from this book.

Clayton Carney said
Presents a good introduction to embedded system programming; no complaints there. However, their choice of development kit is poor. The Arcom (now EuroTech) kit is $600, rather than the $300 stated in the book. And it took almost 3 weeks for them to respond to a quote request. Fortunately, there are kits available from other vendors (BiPom, Olimex, etc.) which can be substituted for less than $300. However, the impracticality of using the Arcom kit robs the book of its purpose of being a hands-on, guided tutorial.

Vincent Socci said
If you are just getting into embedded systems and you want to understand the myriad of interacting concepts, this book is a good start. You will get a solid overview of the basic elements, such as hardware, software tools and techniques, memory and peripherals, processing controls and design strategies.

As with any embedded systems book, there has to be some alignment with specific hardware and application examples. The author uses these examples to tie together embedded elements, but the integration is a bit choppy.

The book is organized as a general introduction to embedded systems. About half the book describes the system elements and about half provides full system examples. A single book cannot cover all topologies and development platforms, so I wouldn't recommend it for someone who is trying to solve a specific problem on his/her embedded application. For cases like that, your vendors and FAEs are probably your best bet.

So if you are trying to learn embedded systems development, this is a great resource. If you intend to use it to guide a current project or debug an embedded problem, it may become more of a distraction.

Joshua Benuck said
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.

Midwest Book Review said
Programming Embedded Systems with C and GNU Development Tools appears in its second updated edition to include even more real-world and Linux examples, and is a recommended pick for programmers with a familiarity with C. It's been used as a college textbook and covers everything from basic debugging skills to determining the applications and needs of real-time projects. In updating details and clarifying routines, the 2nd edition of Programming Embedded Systems should be considered both a classroom and lending collection standard.

Diane C. Donovan
California Bookwatch

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Walking on water and developing software from a specification are easy if both are frozen.” - Edward V Berard