Skip to main content

About this book

Develop the software and hardware you never think about. We're talking about the nitty-gritty behind the buttons on your microwave, inside your thermostat, inside the keyboard used to type this description, and even running the monitor on which you are reading it now. Such stuff is termed embedded systems, and this book shows how to design and develop embedded systems at a professional level. Because yes, many people quietly make a successful career doing just that.

Building embedded systems can be both fun and intimidating. Putting together an embedded system requires skill sets from multiple engineering disciplines, from software and hardware in particular. Building Embedded Systems is a book about helping you do things in the right way from the beginning of your first project:

Programmers who know software will learn what they need to know about hardware.Engineers with hardware knowledge likewise will learn about the software side.

Whatever your background is, Building Embedded Systems is the perfect book to fill in any knowledge gaps and get you started in a career programming for everyday devices. Author Changyi Gu brings more than fifteen years of experience in working his way up the ladder in the field of embedded systems. He brings knowledge of numerous approaches to embedded systems design, including the System on Programmable Chips (SOPC) approach that is currently growing to dominate the field. His knowledge and experience make Building Embedded Systems an excellent book for anyone wanting to enter the field, or even just to do some embedded programming as a side project.

What You Will LearnProgram embedded systems at the hardware level

Learn current industry practices in firmware development

Develop practical knowledge of embedded hardware options

Create tight integration between software and hardware

Practice a work flow leading to successful outcomes

Build from transistor level to the system level

Make sound choices between performance and cost

Who This Book Is For

Embedded-system engineers and intermediate electronics enthusiasts who are seeking tighter integration between software and hardware. Those who favor the System on a Programmable Chip (SOPC) approach will in particular benefit from this book. Students in both Electrical Engineering and Computer Science can also benefit from this book and the real-life industry practice it provides.

Table of Contents

Chapter 1. The Whole Picture

In the old days, many systems would forgo microprocessors in favor of glue logic or application specific controllers to drive costs down. This makes it very hard to have a generalized discussion about those systems.
Changyi Gu

Chapter 2. Power On and Bootloader

Curiosity is human nature. In a grand scheme of things, people might wonder how the universe got started, to which those folks who discovered the gravity wave know better than to ask. But on a much smaller scale, if you are just curious to understand how the embedded systems got started, this chapter can help.
Changyi Gu

Chapter 3. Inside the CPU

As you’ve seen, the CPU is the command and control center of each and every embedded system. Ever since the time when the first computer was conceived, many great minds have dedicated the better part of their lives to new CPU architectures. The topic of CPU architecture is too pandemic to be discussed here. Inquisitive readers would be better served by Ref [1][2] and other good books on this topic. Fortunately, as far as embedded systems are concerned, only certain parts of it matters to your development practice. This chapter tries to glean these pieces.
Changyi Gu

Chapter 4. RAM, DMA, and Interrupt

Yeah, Jesus tried to save me, but there was no space left on his memory card.
Changyi Gu

Chapter 5. Bus Architecture

All parts should go together without forcing. You must remember that the parts you are reassembling were disassembled by you. Therefore, if you can't get them together again, there must be a reason. By all means, do not use a hammer.
Changyi Gu

Chapter 6. Firmware Coding in C

Starting in this chapter, I will delve into the softer side of embedded systems. The next three chapters cover C/C++, the build process, and a little bit of embedded OS.
Changyi Gu

Chapter 7. Firmware Coding in the C++ and Script Languages

To continue where we left off, this chapter demonstrates how C++ can be applied to embedded systems. Script languages are also examined in this chapter.
Changyi Gu

Chapter 8. Building and Deployment

When the scale of your system grows, two things will likely happen.
Changyi Gu

Chapter 9. Field-Programmable Gate Arrays

Now comes the “hard” part. The next three chapters are all about hardware, which covers a wide gamut of topics like FPGA, SOPC, LCD, etc. This chapter begins with an overview of the embedded hardware in general, followed by detailed discussions about FPGA and IP protection.
Changyi Gu

Chapter 10. System on Programmable Chip (SOPC)

Programmable hardware, as the book’s title suggests, starts to emerge as an important part of embedded system design. And more specifically, the SOPC (System on Programmable Chips) approach is moving toward the mainstream, thanks to decades of groundwork laid by the FPGA industry. Given all that, this chapter explains why SOPC makes more sense for your next big design.
Changyi Gu

Chapter 11. De-Bounce, Power Management, and Display

This chapter covers some miscellaneous hardware topics that are important to embedded systems, such as power-on resets, switch de-bouncing, power management, managing displays, and using touchscreens.
Changyi Gu

Chapter 12. Fixed Point Math

In rating ease of description as very important, we are essentially asserting a belief in quantitative knowledge—a belief that most of the key questions in our world sooner or later demand answers to 'by how much?' rather than merely to 'in which direction?'
Changyi Gu

Chapter 13. Popular Ways of Console Communications: Prepare the Tools

Embedded systems is a pandemic topic that concerns many engineering disciplines. Accordingly, a wide variety of tools are used on daily basis by engineers down in the trenches. Although this book has no intention to devolve into a tool shed, it is nevertheless recommended for readers to get familiar with the following tools.
Changyi Gu

Chapter 14. Work Flow

There is more than one way to design an embedded system, and there are more than 100 ways to design a system that has defects. For any engineering work, having a process in place is a sound way to ensure consistency and reliability.
Changyi Gu
Additional information