This “Embedded Systems Architecture and Software Design” is the volume 2 for book series of embedded systems. This book will assist reader to learn about embedded systems architecture and software design by presenting software design principles, considerations, design flow, concepts, building blocks (application layer, system service layer, real-time operating system layer and hardware abstraction layer) and drivers programming.
Embedded Systems Basic, Design and Development This book begins by defining what an embedded system is. Chapter 1 present classification and aspect of embedded systems, describes embedded systems’ hardware and software characteristics. Chapter 2 illustrates the four phases of embedded systems design and development plan, design, integrated development (ID), design verification and validation (DV&V).
Embedded Systems Three architecture design cases, Digital Thermal Controller (DTC), Digital Weight Scale (DWS), and Smart Connected Vehicle (SCV), are presented in Chapter 3. The first design case, Digital Thermal Controller (DTC) device, employs the Microchip PIC32MX675F256 microcontroller plus a LAN8740A Ethernet PHY transceiver IC. The second design case, Digital Weight Scale (DWS) project, adopts Texas Instrument’s CC2541F256 Bluetooth Low Energy (BLE) SoC as the machine-to-machine (M2M) core. The third design case, Smart Connected Vehicle (SCV) design, use Sierra Wireless CDMA module SL3010T (plus CC2541F256 BLE) as the central processing unit (CPU). Each design case starts from describing technology background, then followed by function requirements. Hardware and software architectures are derived and presented.
Software Design Principles, Considerations, Design Process flow, Concepts and In software design phase, many critical and strategic decisions are made to achieve the desired software functionality and quality of the system. These concepts, principles, and considerations, need take into account to successfully develop the software and carry out its maintenance in a way that the quality of the product is ensured. Chapter 4 discusses software design principles and considerations. During the software design process, design approach is investigated, documents are produced, software architecture and algorithms are defined, software programs and libraries are developed, and code are compiled, debugged, and tested. Chapter 5 presents software design process flow. Chapter 6 talks about software design concepts and definitions.
Software Design Architectures, Building Blocks, Real-Time Operating Systems (RTOS): Embedded system software architecture can be flexible. Simple embedded software may be only a few thousand lines of code and perform simple input and output functions. On the other end, complex embedded systems need more complex software architecture, provide more powerful functions, more convenient interfaces for users. Chapter 7 discusses software design architecture, building blocks, and present coding examples for SPI/I2C/USART/GPIO drivers. Many embedded systems require real-time behavior, and due to hardware resource constraints, performance and efficiency are top priorities. An RTOS provides the resource management and scheduling required to meet the demands of applications.
This book is intentionally written for following audience. Managers and team leaders who need to manage and guide embedded system software projects effectively. Engineers and designers who want to speed up and optimize embedded system software architectures and design. New graduates and students who want to study and practice embedded system software architectures and design.