Embedded Software

Embedded Software

The Works

2nd Edition - March 28, 2012

Write a review

  • Author: Colin Walls
  • eBook ISBN: 9780124159693
  • Paperback ISBN: 9780124158221

Purchase options

Purchase options
DRM-free (Mobi, EPub, PDF)
Sales tax will be calculated at check-out

Institutional Subscription

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 (blogs.mentor.com/colinwalls).

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

  • Dedication


    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


Product details

  • No. of pages: 436
  • Language: English
  • Copyright: © Newnes 2012
  • Published: March 28, 2012
  • Imprint: Newnes
  • eBook ISBN: 9780124159693
  • Paperback ISBN: 9780124158221

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 http://blogs.mentor.com/colinwalls. 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

Write a review

Latest reviews

(Total rating for all reviews)

  • Dzung N. Mon May 14 2018

    This is the book I

    This is the book I had been looking for.