Embedded Software

The Works


  • Colin Walls, Embedded Systems Division, Mentor Graphics, London, UK.

Embedded software needs have grown exponentially over the past quarter century. In 1975 writing 10,000 lines of assembly code was a considered a huge undertaking. Today, a cell phone can contain five million lines of C or C++! Embedded software 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. This practical guide, written by industry pioneer Colin Walls, helps embedded design engineers to rise to that challenge. The author offers expertise and insights from his quarter century of design experience, covering a plethora of major concerns in an easy-to-reference essay format that provides the reader with detailed tips and techniques, and rigorous explanations of technologies. Contributions from other well-known designers in the embedded systems field offer additional seasoned perspectives on everything from exotic memories to USB software. This one book has an amazing breadth of coverage, undertaking 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, Programmable Logic and much more. For those in the field who are looking to broaden their professional skill-sets in order to advance, as well as those "newbies" just entering the field of embedded systems design, this comprehensive new reference is a must-have!The accompanying CD-ROM contains source code for the many real-world examples in the text, to save readers from needless re-typing. Also included are PowerPoint slides to create training seminars or classes from the text, and various product-related spec sheets.
View full description


PRIMARY MARKET: Embedded Design Developers, Computer Engineers, Software Engineers, Electrical Engineers, System Engineers, System ArchitectsSECONDARY MARKET: Upper-level Undergrad and Post-graduate Computer Engineering Students


Book information

  • Published: September 2005
  • Imprint: NEWNES
  • ISBN: 978-0-7506-7954-1


"This one book has an amazing breadth of coverage, undertaking all the key subjects embedded engineers need to understand in order to succeed." - eg3.com, November 2005

Table of Contents

ForewardPrefaceWhat’s on the CD-ROM?1. Embedded Software1.1 What Makes an Embedded Application Tick?1.2 Memory in Embedded Systems1.3 Memory Architectures1.4 How Software Influences Hardware Design1.5 Migrating Your Software to a New Processor Architecture1.6 Testing Computers on Wheels1.7 Embedded Software for Transportation Applications1.8 How to Choose a CPU for Your System on Chip Design1.9 An Introduction to USB Software1.10 USB On-the-Go2. Design and Development2.1 Emerging Technology for Embedded Systems Software Development2.2 Making Development Tool Choices2.3 Eclipse – Bringing Embedded Tools Together2.4 A Development System that Crosses RTOS Boundaries2.5 Embedded Software and UML2.6 Model-Based Systems Development with xrUML3. Programming3.1 Programming for Exotic Memories3.2 Self-Testing in Embedded Systems3.3 A Command-Line Interpreter3.4 Traffic Lights: An Embedded Software Application3.5 PowerPC Assembler4. C Language4.1 C Common4.2 Using C Function Prototypes4.3 Interrupt Functions and ANSI Keywords4.4 Optimization for RISC Architectures4.5 Bit by Bit4.6 Programming Floating-Point Applications4.7 Looking at C-A Different Perspective4.8 Reducing Function Call Overhead4.9 Structure Layout – Become an Expert4.10 Memory and Programming in C4.11 Pointers and Arrays in C and C++5. C++5.1 C++ in Embedded Systems – A Management Perspective5.2 Why Convert from C to C++?5.3 Clearing the Path to C++5.4 C++ Templates – Benefits and Pitfalls5.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 non-volatile RAM with C++6. Real Time6.1 Real-Time Systems6.2 Visualizing Program Models of Embedded Systems6.3 Event Handling in Embedded Systems6.4 Programming for Interrupts7. Real-Time Operating Systems7.1 Debugging Techniques with an RTOS7.2 A Debugging Solution for a Custom Real-Time Operating System7.3 Debugging – Stack Overflows7.4 Bring in the Pros – When to Consider a Commercial RTOS7.5 On the Move7.6 Introduction to RTOS Driver Development7.7 Scheduling Algorithms and Priority Inversion7.8 Time versus Priority Scheduling7.9 An Embedded File System7.10 OSEK – An RTOS Standard8. Networking8.1 What’s Wi-Fi?8.2 Who Needs a Web Server?8.3 Introduction to SNMP8.4 Ipv6 – The Next Generation Internet Protocol8.5 The Basics of DHCP8.6 NAT Explained8.7 PPP – Point-to-Point Protocol8.8 Introduction to SSL8.9 DHCP Debugging Tips8.10 IP Multicasting9 Embedded Systems and Programmable Logic9.1 FPGAs and Processor Cores: The Future of Embedded Systems?9.2 FPGA-Based Design Delivers Customized Embedded Solutions9.3 Xilinx MicroBlaze Soft Core Processor9.4 Real-Time Operating Systems for FPGAAfterwordIndex