Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Hands-On Embedded Programming with C++17

You're reading from  Hands-On Embedded Programming with C++17

Product type Book
Published in Jan 2019
Publisher Packt
ISBN-13 9781788629300
Pages 458 pages
Edition 1st Edition
Languages
Author (1):
Maya Posch Maya Posch
Profile icon Maya Posch

Table of Contents (19) Chapters

Title Page
Copyright and Credits
About Packt
Contributors
Preface
1. What Are Embedded Systems? 2. C++ as an Embedded Language 3. Developing for Embedded Linux and Similar Systems 4. Resource-Restricted Embedded Systems 5. Example - Soil Humidity Monitor with Wi-Fi 6. Testing OS-Based Applications 7. Testing Resource-Restricted Platforms 8. Example - Linux-Based Infotainment System 9. Example - Building Monitoring and Control 10. Developing Embedded Systems with Qt 11. Developing for Hybrid SoC/FPGA Systems 1. Best Practices 2. Other Books You May Enjoy Index

System-on-Chip/Single Board Computer


Systems-on-Chips (SoCs) are similar to MCUs, but distinguish themselves from those types of embedded systems by having some level of integration while still requiring a number of external components to function. They are commonly found as part of a single board implementation (Single Board Computer (SBC)), including the PC/104 standard, and more recently form factors such as the Raspberry Pi and derivative boards:

This diagram was used from https://xdevs.com/article/rpi3_oc/. It clearly shows how an SBC (in this case, the Raspberry Pi 3) is laid out. The BCM2837 is the ARM-based SoC, providing the CPU core and basic peripherals (mostly broken out into the header section). All of the RAM is in an external module, as are the Ethernet and Wi-Fi peripherals. ROM is provided in the form of an SD (Flash) card, which also provides storage.

Most SoCs are ARM-based (Cortex-A family), though MIPS is quite common as well. SBCs are commonly used in industrial settings.

Other instances are mass produced boards, such as those for smartphones, which do not form a predefined form factor, but still follow the same pattern of having the SoC and external RAM, ROM, and storage, as well as various peripherals. This is in contrast with the MCUs of the previous section, which would always be able to function by themselves, except for the few requiring an external ROM.

Challenges

Compared to MCUs, the development challenges of SoCs tend to be far less severe. Some of them are on the level and have an interface where you can even develop directly on the device, even doing compilation cycles on the device without having to do cross-compilation on a PC and copying over the binary. This is also helped by running a full OS instead of developing for the bare hardware.

The obvious disadvantage is that with this increase in features comes an increase in complexity, and the resulting complications, such as having to deal with user accounts, setting permissions, managing device drivers, and so on.

You have been reading a chapter from
Hands-On Embedded Programming with C++17
Published in: Jan 2019 Publisher: Packt ISBN-13: 9781788629300
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €14.99/month. Cancel anytime}