- Table View
- List View
Embedded Linux Development Using Yocto Project Cookbook.: Practical recipes to help you leverage the power of Yocto to build exciting Linux-based systems
by Javier Viguera Alex GonzálezOver 79 hands-on recipes for professional embedded Linux developers to optimize and boost their Yocto Project know-how Key Features Optimize your Yocto setup to speed up development and debug build issues Use what is quickly becoming the standard embedded Linux product builder framework—the Yocto Project Recipe-based implementation of best practices to optimize your Linux system Book Description The Yocto Project has become the de facto distribution build framework for reliable and robust embedded systems with a reduced time to market. You'll get started by working on a build system where you set up Yocto, create a build directory, and learn how to debug it. Then, you'll explore everything about the BSP layer, from creating a custom layer to debugging device tree issues. In addition to this, you’ll learn how to add a new software layer, packages, data, scripts, and configuration files to your system. You will then cover topics based on application development, such as using the Software Development Kit and how to use the Yocto project in various development environments. Toward the end, you will learn how to debug, trace, and profile a running system. This second edition has been updated to include new content based on the latest Yocto release. What you will learn Optimize your Yocto Project setup to speed up development and debug build issues Use Docker containers to build Yocto Project-based systems Take advantage of the user-friendly Toaster web interface to the Yocto Project build system Build and debug the Linux kernel and its device trees Customize your root filesystem with already-supported and new Yocto packages Optimize your production systems by reducing the size of both the Linux kernel and root filesystems Explore the mechanisms to increase the root filesystem security Understand the open source licensing requirements and how to comply with them when cohabiting with proprietary programs Create recipes, and build and run applications in C, C++, Python, Node.js, and JavaWho this book is for If you are an embedded Linux developer with the basic knowledge of Yocto Project, this book is an ideal way to broaden your knowledge with recipes for embedded development.
Embedded Linux Development using Yocto Projects: Learn to leverage the power of Yocto Project to build efficient Linux-based products
by Daiane Angolini Otavio SalvadorOptimize and boost your Linux-based system with Yocto Project and increase its reliability and robustness efficiently and cost-effectively.Key FeaturesOptimize your Yocto Project tools to develop efficient Linux-based projectsPractical approach to learning Linux development using Yocto ProjectDemonstrates concepts in a practical and easy-to-understand wayBook DescriptionYocto Project is turning out to be the best integration framework for creating reliable embedded Linux projects. It has the edge over other frameworks because of its features such as less development time and improved reliability and robustness. Embedded Linux Development using Yocto Project starts with an in-depth explanation of all Yocto Project tools, to help you perform different Linux-based tasks. The book then moves on to in-depth explanations of Poky and BitBake. It also includes some practical use cases for building a Linux subsystem project using Yocto Project tools available for embedded Linux. The book also covers topics such as SDK, recipetool, and others. By the end of the book, you will have learned how to generate and run an image for real hardware boards and will have gained hands-on experience at building efficient Linux systems using Yocto Project.What you will learnUnderstand the basic concepts involved in Poky workflows along with configuring and preparing the Poky build environmentConfigure a build server and customize images using ToasterGenerate images and fit packages into created images using BitBakeSupport the development process by setting up and using Package feedsDebug Yocto Project by configuring PokyBuild an image for the BeagleBone Black, RaspberryPi 3, and Wandboard, and boot it from an SD card Who this book is forIf you are an embedded Linux developer with a basic knowledge of Yocto Project and want to broaden your knowledge with examples of embedded development, then this book is for you. This book is also for professionals who want to find new insights into working methodologies for Linux development.
Embedded Linux Development with Yocto Project
by Otavio Salvador Daiane AngoliniA practical tutorial guide which introduces you to the basics of Yocto Project, and also helps you with its real hardware use to boost your Embedded Linux-based project. If you are an embedded systems enthusiast and willing to learn about compelling features offered by the Yocto Project, then this book is for you. With prior experience in the embedded Linux domain, you can make the most of this book to efficiently create custom Linux-based systems.
Embedded Linux for Developers
by Alex Gonzalez Chris Simmonds Alexandru VaduvaLeverage the power of Linux to develop captivating and powerful embedded Linux projects About This Book * Explore the best practices for all embedded product development stages * Learn about the compelling features offered by the Yocto Project, such as customization, virtualization, and many more * Minimize project costs by using open source tools and programs Who This Book Is For If you are a developer who wants to build embedded systems using Linux, this book is for you. It is the ideal guide for you if you want to become proficient and broaden your knowledge. A basic understanding of C programming and experience with systems programming is needed. Experienced embedded Yocto developers will find new insight into working methodologies and ARM specific development competence. What You Will Learn * Use the Yocto Project in the embedded Linux development process * Get familiar with and customize the bootloader for a board * Discover more about real-time layer, security, virtualization, CGL, and LSB * See development workflows for the U-Boot and the Linux kernel, including debugging and optimization * Understand the open source licensing requirements and how to comply with them when cohabiting with proprietary programs * Optimize your production systems by reducing the size of both the Linux kernel and root filesystems * Understand device trees and make changes to accommodate new hardware on your device * Design and write multi-threaded applications using POSIX threads * Measure real-time latencies and tune the Linux kernel to minimize them In Detail Embedded Linux is a complete Linux distribution employed to operate embedded devices such as smartphones, tablets, PDAs, set-top boxes, and many more. An example of an embedded Linux distribution is Android, developed by Google. This learning path starts with the module Learning Embedded Linux Using the Yocto Project. It introduces embedded Linux software and hardware architecture and presents information about the bootloader. You will go through Linux kernel features and source code and get an overview of the Yocto Project components available. The next module Embedded Linux Projects Using Yocto Project Cookbook takes you through the installation of a professional embedded Yocto setup, then advises you on best practices. Finally, it explains how to quickly get hands-on with the Freescale ARM ecosystem and community layer using the affordable and open source Wandboard embedded board. Moving ahead, the final module Mastering Embedded Linux Programming takes you through the product cycle and gives you an in-depth description of the components and options that are available at each stage. You will see how functions are split between processes and the usage of POSIX threads. By the end of this learning path, your capabilities will be enhanced to create robust and versatile embedded projects. This Learning Path combines some of the best that Packt has to offer in one complete, curated package. It includes content from the following Packt products: * Learning Embedded Linux Using the Yocto Project by Alexandru Vaduva * Embedded Linux Projects Using Yocto Project Cookbook by Alex Gonzalez * Mastering Embedded Linux Programming by Chris Simmonds Style and approach This comprehensive, step-by-step, pragmatic guide enables you to build custom versions of Linux for new embedded systems with examples that are immediately applicable to your embedded developments. Practical examples provide an easy-to-follow way to learn Yocto project development using the best practices and working methodologies. Coupled with hints and best practices, this will help you understand embedded Linux better.
Embedded Linux Projects Using Yocto Project Cookbook
by Alex GonzalezIf you are an embedded developer learning about embedded Linux with some experience with the Yocto project, this book is the ideal way to become proficient and broaden your knowledge with examples that are immediately applicable to your embedded developments. Experienced embedded Yocto developers will find new insight into working methodologies and ARM specific development competence.
Embedded Linux System Design and Development
by P. Raghavan Amol Lad Sriram NeelakandanBased upon the authors' experience in designing and deploying an embedded Linux system with a variety of applications, Embedded Linux System Design and Development contains a full embedded Linux system development roadmap for systems architects and software programmers. Explaining the issues that arise out of the use of Linux in embedded systems, the book facilitates movement to embedded Linux from traditional real-time operating systems, and describes the system design model containing embedded Linux.This book delivers practical solutions for writing, debugging, and profiling applications and drivers in embedded Linux, and for understanding Linux BSP architecture. It enables you to understand: various drivers such as serial, I2C and USB gadgets; uClinux architecture and its programming model; and the embedded Linux graphics subsystem. The text also promotes learning of methods to reduce system boot time, optimize memory and storage, and find memory leaks and corruption in applications.This volume benefits IT managers in planning to choose an embedded Linux distribution and in creating a roadmap for OS transition. It also describes the application of the Linux licensing model in commercial products.
Embedded Machine Learning for Cyber-Physical, IoT, and Edge Computing: Hardware Architectures
by Sudeep Pasricha Muhammad ShafiqueThis book presents recent advances towards the goal of enabling efficient implementation of machine learning models on resource-constrained systems, covering different application domains. The focus is on presenting interesting and new use cases of applying machine learning to innovative application domains, exploring the efficient hardware design of efficient machine learning accelerators, memory optimization techniques, illustrating model compression and neural architecture search techniques for energy-efficient and fast execution on resource-constrained hardware platforms, and understanding hardware-software codesign techniques for achieving even greater energy, reliability, and performance benefits.
Embedded Machine Learning with Microcontrollers: Applications on Arduino Boards
by Cem Ünsalan Berkan Höke Eren AtmacaThis textbook introduces basic and advanced embedded machine learning methods by exploring practical applications on Arduino boards. By covering traditional and neural network-based machine learning methods implemented on microcontrollers, the text is designed for use in courses on microcontrollers and embedded machine learning systems. Following the learning-by-doing approach, the book will enable students to grasp embedded machine learning concepts through real-world examples, providing them with the design and implementation skills needed for a competitive job market. By utilizing a programming environment that enables students to reach and modify microcontroller properties easily, the material allows for fast implementation of the developed system. Students are guided in implementing machine learning methods to be deployed and tested on microcontrollers throughout the book, with the theory behind the implemented methods also emphasized. Sample codes and real-world projects are available for readers and instructors. The book will also be an ideal reference for practicing engineers and electronics hobbyists.
Embedded Machine Learning with Microcontrollers: Applications on STM32 Development Boards
by Cem Ünsalan Berkan Höke Eren AtmacaThis textbook introduces basic embedded machine learning methods by exploring practical applications on STM32 development boards. Covering traditional and neural network-based machine learning methods implemented on microcontrollers, the text is designed for use in courses on microcontrollers, microprocessor systems, and embedded systems. Following the learning by doing approach, the book will enable students to grasp embedded machine learning concepts through real-world examples that will provide them with the design and implementation skills needed for a competitive job market. By utilizing a programming environment that enables students to reach and modify low-level microcontroller properties, the material allows for more control of the developed system. Students will be guided in implementing machine learning methods to be deployed and tested on microcontrollers throughout the book, with the theory behind the implemented methods also emphasized. Sample codes and course slides are available for readers and instructors, and a solutions manual is available to instructors. The book will also be an ideal reference for practicing engineers and electronics hobbyists.
Embedded Memories for Nano-Scale VLSIs
by Kevin ZhangThe book provides a comprehensive and in-depth view on the state-of-the-art embedded memory technologies. The book helps practicing engineers grasp key technology attributes and advanced design techniques in nano-scale VLSI design. It also helps them make decisions concerning the right design tradeoffs in real product development. This book first provides an overview on the landscape and trend of embedded memory in various VLSI system designs, including high-performance microprocessor, low-power mobile handheld devices, micro-controllers, and various consumer electronics. It then shows an in-depth view on each different type of embedded memory technology, including high-speed SRAM, ultra-low-voltage and alternative SRAM, embedded DRAM, embedded nonvolatile memory, and emerging or so-called "universal" memories such as FeRAM, MRAM, and PRAM. Each topic covers all the key technology attributes from a product application perspective, ranging from technology scaling challenges to advanced circuit techniques for achieving optimal design tradeoff in performance and power. As VLSI systems become increasingly dependent on on-die memory to provide adequate memory bandwidth for various applications, the book gives readers a broader view of this important field and helps them to achieve their optimal design goals for different applications. This book provides readers a broad knowledge on the entire embedded memory technologies in order to better comprehend the technologies and create optimal memory solutions in real applications.
Embedded Memory Design for Multi-Core and Systems on Chip
by Baker MohammadThis book describes the various tradeoffs systems designers face when designing embedded memory. Readers designing multi-core systems and systems on chip will benefit from the discussion of different topics from memory architecture, array organization, circuit design techniques and design for test. The presentation enables a multi-disciplinary approach to chip design, which bridges the gap between the architecture level and circuit level, in order to address yield, reliability and power-related issues for embedded memory.
Embedded Microprocessor System Design using FPGAs
by Uwe Meyer-BaeseThis textbook for courses in Embedded Systems introduces students to necessary concepts, through a hands-on approach. It gives a great introduction to FPGA-based microprocessor system design using state-of-the-art boards, tools, and microprocessors from Altera/Intel® and Xilinx®. HDL-based designs (soft-core), parameterized cores (Nios II and MicroBlaze), and ARM Cortex-A9 design are discussed, compared and explored using many hand-on designs projects. Custom IP for HDMI coder, Floating-point operations, and FFT bit-swap are developed, implemented, tested and speed-up is measured. Downloadable files include all design examples such as basic processor synthesizable code for Xilinx and Altera tools for PicoBlaze, MicroBlaze, Nios II and ARMv7 architectures in VHDL and Verilog code, as well as the custom IP projects. Each Chapter has a substantial number of short quiz questions, exercises, and challenging projects. Explains soft, parameterized, and hard core systems design tradeoffs;Demonstrates design of popular KCPSM6 8 Bit microprocessor step-by-step;Discusses the 32 Bit ARM Cortex-A9 and a basic processor is synthesized;Covers design flows for both FPGA Market leaders Nios II Altera/Intel and MicroBlaze Xilinx system;Describes Compiler-Compiler Tool development;Includes a substantial number of Homework’s and FPGA exercises and design projects in each chapter.
Embedded Multimedia Security Systems
by Joseph Zambreno Amit PandeOpening with a detailed review of existing techniques for selective encryption, this text then examines algorithms that combine both encryption and compression. The book also presents a selection of specific examples of the design and implementation of secure embedded multimedia systems. Features: reviews the historical developments and latest techniques in multimedia compression and encryption; discusses an approach to reduce the computational cost of multimedia encryption, while preserving the properties of compressed video; introduces a polymorphic wavelet architecture that can make dynamic resource allocation decisions according to the application requirements; proposes a light-weight multimedia encryption strategy based on a modified discrete wavelet transform; describes a reconfigurable hardware implementation of a chaotic filter bank scheme with enhanced security features; presents an encryption scheme for image and video data based on chaotic arithmetic coding.
Embedded Multiprocessors: Scheduling and Synchronization, Second Edition (Signal Processing and Communications)
by null Sundararajan Sriram null Shuvra S. BhattacharyyaTechniques for Optimizing Multiprocessor Implementations of Signal Processing ApplicationsAn indispensable component of the information age, signal processing is embedded in a variety of consumer devices, including cell phones and digital television, as well as in communication infrastructure, such as media servers and cellular base stations. Multiple programmable processors, along with custom hardware running in parallel, are needed to achieve the computation throughput required of such applications. Reviews important research in key areas related to the multiprocessor implementation of multimedia systemsEmbedded Multiprocessors: Scheduling and Synchronization, Second Edition presents architectures and design methodologies for parallel systems in embedded digital signal processing (DSP) applications. It discusses application modeling techniques for multimedia systems, the incorporation of interprocessor communication costs into multiprocessor scheduling decisions, and a modeling methodology (the synchronization graph) for multiprocessor system performance analysis. The book also applies the synchronization graph model to develop hardware and software optimizations that can significantly reduce the interprocessor communication overhead of a given schedule.Chronicles recent activity dealing with single-chip multiprocessors and dataflow modelsThis edition updates the background material on existing embedded multiprocessors, including single-chip multiprocessors. It also summarizes the new research on dataflow models for signal processing that has been carried out since the publication of the first edition.Harness the power of multiprocessorsThis book explores the optimization of interprocessor communication and synchronization in embedded multiprocessor systems. It shows you how to design multiprocessor computer systems that are streamlined for multimedia applications.
Embedded Operating Systems
by Alan Holt Chi-Yu HuangThis practically-oriented textbook provides a clear introduction to the different component parts of an operating system and how these work together. The easy-to-follow text covers the bootloader, kernel, filesystem, shared libraries, start-up scripts, configuration files and system utilities. The procedure for building each component is described in detail, guiding the reader through the process of creating a fully functional GNU/Linux embedded OS. Features: presents a concise overview of the GNU/Linux system, and a detailed review of GNU/Linux filesystems; describes how to build an embedded system to run on a virtual machine, and to run natively on an actual processor; introduces the concept of the compiler toolchain, demonstrating how to develop a cross toolchain so that programs can be built on a range of different architectures; discusses the ARM-based platforms BeagleBone and Raspberry Pi; explains how to build OpenWRT firmware images for OMxP Open-mesh devices and the Dragino MS14 series.
Embedded Operating Systems
by Alan Holt Chi-Yu HuangThis easy-to- follow textbook/reference guides the reader through the creation of a fully functional embedded operating system, from its source code, in order to develop a deeper understanding of each component and how they work together. The text describes in detail the procedure for building the bootloader, kernel, filesystem, shared libraries, start-up scripts, configuration files and system utilities, to produce a GNU/Linux operating system. This fully updated second edition also includes new material on virtual machine technologies such as VirtualBox, Vagrant and the Linux container system Docker.Topics and features: presents an overview of the GNU/Linux system, introducing the components of the system, and covering aspects of process management, input/output and environment; discusses containers and the underlying kernel technology upon which they are based; provides a detailed examination of the GNU/Linux filesystem; explains how to build an embedded system under a virtual machine, and how to build an embedded system to run natively on an actual processor;introduces the concept of the compiler toolchain, and reviews the platforms BeagleBone and Raspberry Pi; describes how to build firmware images for devices running the Openwrt operating system.The hands-on nature and clearly structured approach of this textbook will appeal strongly to practically minded undergraduate and graduate level students, as well as to industry professionals involved in this area.
Embedded Platforms for UAS Landing Path and Obstacle Detection II: Navigation Support Systems for Urban Air Mobility Operations (Studies in Systems, Decision and Control #530)
by Umberto Papa Gennaro ArianteThis book reports on the design and development of a system that assists remote pilots during navigation. It focuses on the design and development of a ground station that assists remote pilots during maneuvers such as take-off or landing procedures, in case a high accuracy is required or the GNSS signal is lost. Continuing the tradition of the previous volume, and being its revised edition, this book covers the latest UAS regulations together with updated strategies for finding the best and safest trajectory and landing site, with a special focus on urban air mobility applications. It describes the system’s components, such as the LiDAR sensor, the temperature and humidity sensors, the Raspberry Pi 3 controller, and the Bluetooth Low Energy Transmitter, in detail. Further, it discusses the experimental tests carried out in both controlled laboratory settings and real-world environments. All in all, this book offers a timely survey of both regulations of and electronics design for unmanned aircraft systems, with extensive information on new methods and technologies for the development of Detect and Avoid systems for unmanned aerial vehicles.
Embedded Programming with Modern C++ Cookbook: Practical recipes to help you build robust and secure embedded applications on Linux
by Igor ViarheichykExplore various constraints and challenges that embedded developers encounter in their daily tasks and learn how to build effective programs using the latest standards of C++ Key Features Get hands-on experience in developing a sample application for an embedded Linux-based system Explore advanced topics such as concurrency, real-time operating system (RTOS), and C++ utilities Learn how to test and debug your embedded applications using logs and profiling tools Book Description Developing applications for embedded systems may seem like a daunting task as developers face challenges related to limited memory, high power consumption, and maintaining real-time responses. This book is a collection of practical examples to explain how to develop applications for embedded boards and overcome the challenges that you may encounter while developing. The book will start with an introduction to embedded systems and how to set up the development environment. By teaching you to build your first embedded application, the book will help you progress from the basics to more complex concepts, such as debugging, logging, and profiling. Moving ahead, you will learn how to use specialized memory and custom allocators. From here, you will delve into recipes that will teach you how to work with the C++ memory model, atomic variables, and synchronization. The book will then take you through recipes on inter-process communication, data serialization, and timers. Finally, you will cover topics such as error handling and guidelines for real-time systems and safety-critical systems. By the end of this book, you will have become proficient in building robust and secure embedded applications with C++. What you will learn Get to grips with the fundamentals of an embedded system Understand how to optimize code for the targeted hardware platforms Explore cross-compilation, build types, and remote debugging Discover the importance of logging for debugging and root cause analysis of failures Uncover concepts such as interrupt service routine, memory model, and ring buffer Recognize the need for custom memory management in embedded systems Delve into static code analyzers and tools to improve code quality Who this book is for This book is for developers, electronic hardware professionals, and software and system-on-chip engineers who want to build effective embedded programs in C++. Familiarity with the C++ programming language is expected, but no previous knowledge of embedded systems is required.
Embedded Programming with the Microsoft® .NET Micro Framework
by Rob Miles Donald ThompsonGet the information you need for programming applications in the rich, managed-code environment of the Microsoft .NET Micro Framework. You'll learn how to extend your experience with the .NET Framework and Microsoft Visual C# through real-world examples, expert insights, and code samples--and efficiently build robust applications for the smallest devices. Discover how to: Use an object-oriented approach for programming embedded devices Create input and output port objects Develop detailed text and graphical displays that support complex user interactions Add Windows SideShow functionality into your application Implement functionality from existing applications to embedded applications Bind physical hardware events to Windows Presentation Foundation elements Establish embedded-network connections using TCP/IP Use emulation techniques for rapid-prototyping, experimentation, testing, and debugging Optimize performance of resource-constrained devices PLUS--Get code samples in Visual C# on the Web
The Embedded Project Cookbook: A Step-by-Step Guide for Microcontroller Projects
by John T. Taylor Wayne T. TaylorLearn how to create and release an embedded system in a fast and reliable manner. This book will help you build and release a commercially viable product that meets industry standards for quality. The book is not just about code: it covers non-code artifacts such as software processes, requirements, software documentation, continuous integration, design reviews, and code reviews. While specifically targeting microcontroller applications, the processes in this book can be applied to most software projects, big or small. Additionally, the book provides an open-source C++ framework that can be used to quick start any embedded project. This framework has an OSAL (OS Abstraction Layer) and essential middleware that is needed for many embedded systems. Using a hands-on approach of building-and-testing the software application first allows you to develop a significant amount of production quality code even before the hardware is available, dramatically reducing the start-to-release duration for a project. As you follow the recipes in this book, you will learn essential software development processes, perform just in time design, create testable modules, and incorporate continuous integration (CI) into your day-to-day developer workflow. The end-result is quality code that is maintainable and extensible, and can be reused for other projects, even when presented with changing or new requirements. The Embedded Project Cookbook is focused on the how of developing embedded software. For a discussion of the why, readers are invited to refer to the optional companion book Patterns in the Machine: A Software Engineering Guide to Embedded Development. What You Will Learn Separate software architecture from software design Write software documents that are intrinsically resistant to going out-of-date. Identify the processes, workflows, and best practices for the team to follow. Initiate code reviews before code is checked intoa stable branch. Design testable modules and implement automated unit testing that doesn’t require hardware. Incorporate continuous integration into the day-to-day developer workflow, including automated integration testing. Create a code base that can be reused on other projects. Who This Book Is For Mid-level developers and software leads who are looking to get up and running without all the underlying theories. This book is also for professionals looking to learn how to productize a concept or technology and sell the results to a customer.
Embedded Robotics: From Mobile Robots to Autonomous Vehicles with Raspberry Pi and Arduino
by Thomas BräunlThis book presents a unique examination of mobile robots and embedded systems, from introductory to intermediate level. It is structured in three parts, dealing with Embedded Systems (hardware and software design, actuators, sensors, PID control, multitasking), Mobile Robot Design (driving, balancing, walking, and flying robots), and Mobile Robot Applications (mapping, robot soccer, genetic algorithms, neural networks, behavior-based systems, and simulation). The book is written as a text for courses in computer science, computer engineering, IT, electronic engineering, and mechatronics, as well as a guide for robot hobbyists and researchers.
Embedded Software Design: A Practical Approach to Architecture, Processes, and Coding Techniques
by Jacob BeningoDesign higher-quality embedded software from concept through production. This book assumes basic C and microcontroller programming knowledge and is organized into three critical areas: Software Architecture and Design; Agile, DevOps, and Processes; and Development and Coding Skills.You'll start with a basic introduction to embedded software architecture and the considerations for a successful design. The book then breaks down how to architect an RTOS-based application and explore common design patterns and building blocks. Next, you'll review embedded software design processes such as TDD, CI/CD, modeling, and simulation that can be used to accelerate development. Finally, the book will examine how to select a microcontroller, write configurable code, coding strategies, techniques, and tools developers can’t live without.Embedded systems are typically designed using microcontrollers to build electronic systems with a dedicated function and real-time responses. Modern systems need to carefully balance a complex set of features, manage security, and even run machine learning inferences while maintaining reasonable costs, scalability, and robustness. By the end of this book, you will have a defined development process, understand modern software architecture, and be equipped to start building embedded systems. What You'll LearnUnderstand what sound embedded system design is and how to employ itExplore modern development processes for quality systemsKnow where the bits hit the silicon: how to select a microcontrollerMaster techniques to write configurable, automated codeWho This Book Is For Embedded software and hardware engineers, enthusiasts, or any stakeholders who would like to learn modern techniques for designing and building embedded systems.
Embedded Software Design and Programming of Multiprocessor System-on-Chip
by Ahmed A. Jerraya Katalin Popovici Frédéric Rousseau Marilyn WolfCurrent multimedia and telecom applications require complex, heterogeneous multiprocessor system on chip (MPSoC) architectures with specific communication infrastructure in order to achieve the required performance. Heterogeneous MPSoC includes different types of processing units (DSP, microcontroller, ASIP) and different communication schemes (fast links, non standard memory organization and access). Programming an MPSoC requires the generation of efficient software running on MPSoC from a high level environment, by using the characteristics of the architecture. This task is known to be tedious and error prone, because it requires a combination of high level programming environments with low level software design. This book gives an overview of concepts related to embedded software design for MPSoC. It details a full software design approach, allowing systematic, high-level mapping of software applications on heterogeneous MPSoC. This approach is based on gradual refinement of hardware/software interfaces and simulation models allowing to validate the software at different abstraction levels. This book combines Simulink for high level programming and SystemC for the low level software development. This approach is illustrated with multiple examples of application software and MPSoC architectures that can be used for deep understanding of software design for MPSoC.
Embedded Software Development: The Open-Source Approach (Embedded Systems #4)
by Ivan Cibrario Bertolotti Tingting HuEmbedded 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.
Embedded Software Development for Safety-Critical Systems
by Chris Hobbs"I highly recommend Mr. Hobbs' book." - Stephen Thomas, PE, Founder and Editor of FunctionalSafetyEngineer.com <P><P>Safety-critical devices, whether medical, automotive, or industrial, are increasingly dependent on the correct operation of sophisticated software. Many standards have appeared in the last decade on how such systems should be designed and built. Developers, who previously only had to know how to program devices for their industry, must now understand remarkably esoteric development practices and be prepared to justify their work to external auditors. Embedded Software Development for Safety-Critical Systems discusses the development of safety-critical systems under the following standards: IEC 61508; ISO 26262; EN 50128; and IEC 62304. It details the advantages and disadvantages of many architectural and design practices recommended in the standards, ranging from replication and diversification, through anomaly detection to the so-called "safety bag" systems. <P><P>Reviewing the use of open-source components in safety-critical systems, this book has evolved from a course text used by QNX Software Systems for a training module on building embedded software for safety-critical devices, including medical devices, railway systems, industrial systems, and driver assistance devices in cars. Although the book describes open-source tools for the most part, it also provides enough information for you to seek out commercial vendors if that’s the route you decide to pursue. All of the techniques described in this book may be further explored through hundreds of learned articles. In order to provide you with a way in, the author supplies references he has found helpful as a working software developer. Most of these references are available to download for free.