Daniele Lacamera, a senior developer and an old friend, has just published a book about Embedded Systems Architecture, which can be bought in digital format for a special discounted price for the next 24 hours at the following link: https://www.packtpub.com/application-development/embedded-systems-architecture (after the deadline the book will be available as a bundle print + ebook at the regular price). Daniele is a free open source software advocate and is also one of the volunteers putting together FOSDEM in Brussels. As a consequence, the book – which is DRM free – promotes the use of Free and Open Source tools and libraries, and the development approach does not include any proprietary software. The suggested development platform is based on GNU/Linux and GCC.
Daniele introduces less experienced developers to development of embedded systems. Embedded systems have become increasingly popular in the last two decades, thanks to the technological progress made by microelectronics manufacturers and designers, aimed at increasing the computing power and decreasing the size of microprocessors’ and peripherals’ logic.
Designing, implementing, and integrating the software components for these systems requires in most cases a direct approach to the hardware functionalities, where tasks are implemented in a single thread and there is no operating system to provide abstractions to access CPU features and external peripherals. For this reason, embedded development is considered a domain on its own in the universe of software development, where the
developer’s approach and workflow need to be adapted accordingly.
The book briefly explains the hardware architecture of a typical embedded system, introduces tools and methodologies to get started with the development of a target architecture, and then guides the readers through the interaction with system features and peripheral interaction. Some areas, such as energy efficiency and connectivity, are addressed in more detail to give a closer view of the techniques used to design low-power and connected systems.
Some modern aspects of embedded design are analyzed in details in later chapters. This includes low-power and energy harvesting techniques, TCP/IP connectivity and operating systems design. Eventually, the discussion focuses on the existing RTOS approaches, to understand their design on the base of the strategies discussed earlier.
To get the most out of Daniele’s book the reader should be proficient in the C language and understands how computer systems work. In addition, to apply the concepts explained it is required a GNU/Linux development machine and is often necessary to go through the example code to fully understand the mechanism implemented.