Embedded Software Development: The Open-Source Approach delivers a practical introduction to embedded software development, with a focus on open-source components. This programmer-centric book is written in a way that enables even novice practitioners to grasp the development process as a whole.
Incorporating real code fragments and explicit, real-world open-source operating system references (in particular, FreeRTOS) throughout, the text:
- Defines the role and purpose of embedded systems, describing their internal structure and interfacing with software development tools
- Examines the inner workings of the GNU compiler collection (GCC)-based software development system or, in other words, toolchain
- Presents software execution models that can be adopted profitably to model and express concurrency
- Addresses the basic nomenclature, models, and concepts related to task-based scheduling algorithms
- Shows how an open-source protocol stack can be integrated in an embedded system and interfaced with other software components
- Analyzes the main components of the FreeRTOS Application Programming Interface (API), detailing the implementation of key operating system concepts
- Discusses advanced topics such as formal verification, model checking, runtime checks, memory corruption, security, and dependability
Embedded Software Development: The Open-Source Approach capitalizes on the authors’ extensive research on real-time operating systems and communications used in embedded applications, often carried out in strict cooperation with industry. Thus, the book serves as a springboard for further research.
Table of Contents
Introduction. Embedded Applications and Their Requirements. GCC-Based Software Development Tools. Execution Models for Embedded Systems. Concurrent Programming Techniques. Scheduling Algorithms and Analysis. Configuration and Usage of Open-Source Protocol Stacks. Device Driver Development. Portable Software. The FreeRTOS Porting Layer. Performance and Footprint at the Toolchain Level. Example: A Modbus TCP Device. Model Checking of Distributed and Concurrent Systems. Model Checking: An Example. Memory Protection Techniques. Security and Dependability Aspects.
Ivan Cibrario Bertolotti received the Laurea degree (summa cum laude) in computer science from the University of Torino, Turin, Italy, in 1996. Since then, he has been a researcher with the National Research Council of Italy (CNR). Currently, he is with the CNR’s Institute of Electronics, Computer, and Telecommunication Engineering (IEIIT), Turin, Italy. His research interests include real-time operating system design and implementation, industrial communication systems and protocols, and formal methods for vulnerability and dependability analysis of distributed systems. His contributions in this area comprise both theoretical work and practical applications, carried out in cooperation with leading Italian and international companies. He taught several courses on real-time operating systems at Politecnico di Torino, Turin, Italy, from 2003 until 2013, as well as a PhD degree course at the University of Padova in 2009. He regularly serves as a technical referee for the main international conferences and journals on industrial informatics, factory automation, and communication. He has been an IEEE member since 2006.
Tingting Hu holds a master’s degree in computer engineering and a PhD degree in computer and control engineering, both from Politecnico di Torino, Turin, Italy. Since 2010, she has been a research fellow with the National Research Council of Italy (CNR). Currently, she is with the CNR’s Institute of Electronics, Computer, and Telecommunication Engineering (IEIIT), Turin, Italy. Her main research interests are the design and implementation of real-time operating systems and communication protocols, focusing on deterministic and flexible execution and communication for distributed real-time embedded systems. A significant amount of her research activities are carried out in strict collaboration with industry. She is actively involved in several regional and national industrial research projects in the context of the Italian "Factory of the Future" framework program. Moreover, in 2014 she taught a postgraduate-level course about real-time operating systems and open-source software for embedded applications aimed at company technical managers. She has been an IEEE member since 2011 and serves as technical referee for several primary conferences in her research area.
"… provides a consistent description covering many aspects of embedded systems development and explains their interrelationships, which is a very important complement to other in-depth literature. … As such, this book fills a gap ... and will prove valuable to students and professionals who need a single, coherent source of information."
—Kristian Sandström, ABB Corporate Research, Västerås, Sweden, from IEEE Industrial Electronics Magazine, March 2016
"... a brilliant and complete self-empowering guide through the labyrinth of embedded software development while riding the open-source motorbike."
—Wolfgang Betz, Principal Engineer, STMicroelectronics S.R.L., Milan, Italy
"... a solid, grounded, and highly readable introduction to embedded software development where resource management, proper execution model selection, and deterministic behavior matter A LOT. In my field of safety and mission-critical development, the first principles explained in this book are the foundation upon which all other embedded software development depends. This book provides readers with an explanation of embedded software principles built on current and relevant examples."
—Thomas Ferrell, FAA Consulting, Inc., Charlottesville, Virginia, USA
"The book is technically sound and solidly rooted in the significant experience and professional background of the authors, so that readers needing or simply wishing to learn about embedded software development can perfectly rely on its clear and comprehensive coverage. ... References constantly made to open-source s/w components and their discussion throughout the book offer precious added value. ... The best way to synthesize the authors’ work with only one term: balance of theory and practice, informality and rigor of presentation, concepts and implementation, conciseness and clarity."
—Adriano Valenzano, IEIIT-CNR, National Research Council of Italy, Torino