COVID-19 Update: We are currently shipping orders daily. However, due to transit disruptions in some geographies, deliveries may be delayed. To provide all customers with timely access to content, we are offering 50% off Science and Technology Print & eBook bundle options. Terms & conditions.
Embedded Software - 2nd Edition - ISBN: 9780124158221, 9780124159693

Embedded Software

2nd Edition

The Works

5.0 star rating 1 Review
Author: Colin Walls
Paperback ISBN: 9780124158221
eBook ISBN: 9780124159693
Imprint: Newnes
Published Date: 28th March 2012
Page Count: 436
Sales tax will be calculated at check-out Price includes VAT/GST
Price includes VAT/GST

Institutional Subscription

Secure Checkout

Personal information is secured with SSL technology.

Free Shipping

Free global shipping
No minimum order.


As the embedded world expands, developers must have a strong grasp of many complex topics in order to make faster, more efficient and more powerful microprocessors to meet the public’s growing demand. Embedded Software: The Works covers all the key subjects embedded engineers need to understand in order to succeed, including Design and Development, Programming, Languages including C/C++, and UML, Real Time Operating Systems Considerations, Networking, and much more. New material on Linux, Android, and multi-core gives engineers the up-to-date practical know-how they need in order to succeed.

Colin Walls draws upon his experience and insights from working in the industry, and covers the complete cycle of embedded software development: its design, development, management, debugging procedures, licensing, and reuse. For those new to the field, or for experienced engineers looking to expand their skills, Walls provides the reader with detailed tips and techniques, and rigorous explanations of technologies.

Key features include:

  • New chapters on Linux, Android, and multi-core – the cutting edge of embedded software development!
  • Introductory roadmap guides readers through the book, providing a route through the separate chapters and showing how they are linked

About the Author

Colin Walls has over twenty-five years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles and two books on embedded software, he is a member of the marketing team of the Mentor Graphics Embedded Software Division. He writes a regular blog on the Mentor website (

Key Features

  • New chapters on Linux, Android, and multi-core – the cutting edge of embedded software development!
  • Introductory roadmap guides readers through the book, providing a route through the separate chapters and showing how they are linked


Embedded design developers, computer, software, electrical, and system engineers, and system architects. Upper-level undergraduate and postgraduate electrical engineering students.

Table of Contents



Preface to the First Edition

Preface to the Second Edition

Whats on the Website

Roadmap to Embedded Software Development

Chapter 1. Embedded Software

1.1 What Makes an Embedded Application Tick?

1.2 Memory in Embedded Systems

1.3 Memory Architectures

1.4 How Software Influences Hardware Design

1.5 Migrating Your Software to a New Processor Architecture

1.6 Embedded Software for Transportation Applications

1.7 How to Choose a CPU for Your System on Chip Design

1.8 An Introduction to USB Software

1.9 Toward USB 3.0

Further Reading

Chapter 2. Design and Development

2.1 Emerging Technology for Embedded Systems Software Development

2.2 Making Development Tool Choices

2.3 Eclipse—Bringing Embedded Tools Together

2.4 A Development System That Crosses RTOS Boundaries

2.5 Embedded Software and UML

2.6 User Interface Development

2.7 Software and Power Consumption

Chapter 3. Programming

3.1 Programming for Exotic Memories

3.2 Self-Testing in Embedded Systems

3.3 A Command-Line Interpreter

3.4 Traffic Lights: An Embedded Software Application

Chapter 4. C Language

4.1 C Common

4.2 Using C Function Prototypes

4.3 Interrupt Functions and ANSI Keywords

4.4 Bit by Bit

4.5 Programming Floating-Point Applications

4.6 Looking at C—A Different Perspective

4.7 Reducing Function Call Overhead

4.8 Structure Layout—Become an Expert

4.9 Memory and Programming in C

4.10 Pointers and Arrays in C and C++

4.11 Using Dynamic Memory in C and C++

Chapter 5. C++

5.1 C++ in Embedded Systems—A Management Perspective

5.2 Why Convert from C to C++?

5.3 Clearing the Path to C++

5.4 C++ Templates—Benefits and Pitfalls

5.5 Exception Handling in C++

5.6 Looking at Code Size and Performance with C++

5.7 Write-Only Ports in C++

5.8 Using Nonvolatile RAM with C++

Further Reading

Chapter 6. Real Time

6.1 Real-Time Systems

6.2 Visualizing Program Models of Embedded Systems

6.3 Event Handling in Embedded Systems

6.4 Programming for Interrupts

Chapter 7. Real-Time Operating Systems

7.1 Debugging Techniques with an RTOS

7.2 A Debugging Solution for a Custom Real-Time Operating System

7.3 Debugging—Stack Overflows

7.4 Bring in the Pros—When to Consider a Commercial RTOS

7.5 On the Move

7.6 Introduction to RTOS Driver Development

7.7 Scheduling Algorithms and Priority Inversion

7.8 Time Versus Priority Scheduling

7.9 An Embedded File System

7.10 OSEK—An RTOS Standard

Chapter 8. Networking

8.1 What’s Wi-Fi?

8.2 Who Needs a Web Server?

8.3 Introduction to SNMP

8.4 IPv6—The Next Generation Internet Protocol

8.5 The Basics of DHCP

8.6 NAT Explained

8.7 PPP—Point-to-Point Protocol

8.8 Introduction to SSL

8.9 DHCP Debugging Tips

8.10 IP Multicasting

Chapter 9. Open Source, Embedded Linux, and Android

9.1 GNU Toolchain for Embedded Development: Build or Buy

9.2 Introduction to Linux for Embedded Systems

9.3 Android Architecture and Deployment

9.4 Android, MeeGo, and Embedded Linux in Vertical Markets

Chapter 10. Multicore Embedded Systems

10.1 Introduction to Multicore

10.2 Multiple Cores: Multiple Operating Systems

10.3 Selecting Multiple Operating Systems for Multiple Cores

10.4 CPU to CPU Communication: MCAPI


Great Expectations



No. of pages:
© Newnes 2012
28th March 2012
Paperback ISBN:
eBook ISBN:

About the Author

Colin Walls

Colin Walls has over forty years' experience in the electronics industry, largely involved with embedded software - very much a pioneer in this specialty. He has been a frequent presenter at conferences and seminars including: • Embedded Systems Conference, San Jose and Boston • Embedded World, Nuremberg • Arm Tech Con, California • Mentor events world-wide • Numerous partner events Colin has authored a great many technical articles and one of the first books on embedded software ["Programming Dedicated Microprocessors"; Macmillan Education, 1986]. His most recent publication is "Embedded Software: The Works" [2nd edition; Newnes, 2012], which addresses a wide range of embedded software topics. He is an embedded software technologist with Mentor, a Siemens business, and maintains a blog at Colin is based in the UK, where he lives with his family. Away from work, his main interests are photography, reading/writing, and food and drink.

Affiliations and Expertise

Mentor, a Siemens business, Newbury, UK

Ratings and Reviews