The Embedded Linux Security Handbook
Matt St. Onge, Rama Krishnan
Written by Linux and open-source expert Matt St. Onge, this definitive guide helps you build and secure Linux-based appliances capable of withstanding the latest cyber threatsAll formats include a free PDF and an invitation to the Embedded System Professionals community Key Features Develop secure, user-friendly interfaces with streamlined configuration, updates, and life cycle support Learn how to integrate popular security techniques for embedded Linux into the development process Integrate advanced hardware with software security features to enhance your solution’s resilience Book Description As embedded Linux systems power countless devices in our daily lives, they’ve become prime targets for cyberattacks. In this in-depth guide to safeguarding your Linux devices, the author leverages his 30+ years of technology experience to help you mitigate the risks associated with hardware and software vulnerabilities. This book introduces you to the world of embedded systems, the brains behind your everyday appliances. It takes you through the different types of embedded systems, their uses, and the platforms they run on, while addressing their unique security challenges and support considerations. You’ll learn how to build a successful, secure, and user-friendly solution by exploring the critical hardware and software components that form the foundation of a secure appliance. We won't forget the human element either; you'll find out how to configure your system to prevent user errors and maintain its integrity. The book lets you put your newfound knowledge into action, guiding you through designing a robust build chain that supports the entire life cycle of your appliance solution, enabling seamless updates without your direct involvement. By the end of this book, you’ll be able to adapt your appliance to the ever-evolving threat landscape, ensuring its continued security and functionality in real-world conditions. What you will learn Understand how to determine the optimal hardware platform based on design criteria Recognize the importance of security by design in embedded systems Implement advanced security measures such as TPM, LUKS encryption, and Secure Boot processes Discover best practices for secure life cycle management, including appliance update and upgrade mechanisms Create a secure software supply chain efficiently Implement childproofing by controlling access and resources on the appliance Who this book is for This book helps embedded systems professionals, embedded software engineers, and Linux security professionals gain the skills needed to address critical security requirements during the design, development, and testing of software for embedded systems. If you’re a product manager or architect, this book will teach you how to identify and integrate essential security features based on the specific platforms and their intended users.
show moreReverse Engineering Armv8-A Systems
Austin Kim, Bojun Seo
Explore reverse engineering in Armv8-A-based Arm devices, develop the skills to analyze binaries, and leverage cutting-edge security hardening features through hands-on techniques and expert insights Key Features Master key aspects of Armv8-A, including register, exception handling, and TrustZone Build new reversing skills for kernel binaries, such as *.ko and vmlinux, for firmware analysis Understand Armv8-A's latest security features Purchase of the print or Kindle book includes a free PDF eBook Book DescriptionUnlock the secrets hidden in binary code without needing the source! Written by a Linux kernel engineer and author with over 14 years of industry experience, this book lays a solid foundation in reverse engineering and takes you from curious analyst to expert. You’ll master advanced techniques to dissect kernel binaries, including kernel module files, vmlinux, and vmcore, giving you the power to analyze systems at their core. This practical, three-part journey starts with the essentials of reverse engineering, introducing the key features of Armv8-A processors and the ELF file format. The second part walks you through the reverse-engineering process, from Arm environment setup to using static and dynamic analysis tools, including innovative methods for analyzing kernel binaries and the powerful debugging tool uftrace. The final part covers security, exploring TrustZone and the latest security techniques to safeguard Arm devices at the hardware level. By the end of this reverse engineering book, you'll have comprehensive Armv8-A expertise and the practical skills to analyze any binary with confidence while leveraging advanced security features to harden your systems.What you will learn Understand the organization of Arm assembly instructions Disassemble assembly code without using C code Work with reverse engineering tools, such as GDB and binary utility Apply reversing techniques for both user space and kernel binaries Get to grips with static and dynamic binary analysis processes Get a solid understanding of the powerful debugging tool, uftrace Analyze TrustZone and the advanced security features provided by Armv8-A Who this book is for This book is for professionals and enthusiasts interested in reverse engineering and debugging on Armv8-A-based devices. It is especially useful for system software engineers, security consultants, and ethical hackers expanding their binary analysis expertise. To get the most out of this book, you should have a basic understanding of the C programming language. Familiarity with computer architecture, Linux systems, and security concepts will be a definite advantage.
show moreBare-Metal Embedded C Programming
Israel Gbati, Georgios Papanikolaou
Become proficient in designing and developing embedded systems and reduce reliance on third-party libraries Get With Your Book: PDF Copy, AI Assistant, and Next-Gen Reader Free Key Features Learn to develop bare-metal firmware for Arm microcontrollers from scratch Understand hardware intricacies to minimize your dependency on third-party libraries Navigate microcontroller manuals with ease and learn to write optimized code Book DescriptionBare-Metal Embedded C Programming takes you on an unparalleled journey to equip you with the skills and knowledge to excel in the world of embedded systems. The author, with over a decade of hands-on experience in engineering, takes a unique, practical approach to teach you how to decode microcontroller datasheets so that you’re able to extract vital information for precise firmware development. Register manipulation will become second nature to you as you learn to craft optimized code from scratch. The book provides in-depth insights into the hardware intricacies of microcontrollers. You'll navigate user manuals and documentation with ease, ensuring a profound understanding of the underlying technology. The true uniqueness of this book lies in its commitment to fostering independent expertise. Instead of simply copy pasting, you'll develop the capability to create firmware with confidence, paving the way for professional-grade mastery. By the end of this book, you'll have honed your skills in reading datasheets, performing register manipulations, and crafting optimized code, as well as gained the confidence needed to navigate hardware intricacies and write optimized firmware independently, making you a proficient and self-reliant embedded systems developer.What you will learn Decode microcontroller datasheets, enabling precise firmware development Master register manipulations for optimized Arm-based microcontroller firmware creation Discover how to navigate hardware intricacies confidently Find out how to write optimized firmware without any assistance Work on exercises to create bare-metal drivers for GPIO, timers, ADC, UART, SPI, I2C, DMA, and more Design energy-efficient embedded systems with power management techniques Who this book is for Whether you're an experienced engineer seeking in-depth expertise in decoding datasheets, precise register manipulations, and creating firmware from scratch, or a software developer transitioning to the embedded systems domain, this book is your comprehensive guide. It equips you with the practical skills needed for confident, independent firmware development, making it an essential resource for professionals and enthusiasts in the field.
show moreMastering Linux Device Driver Development
John Madieu
Develop advanced Linux device drivers for embedded systems, mastering real-world frameworks like PCI, ALSA SoC, and V4L2 with practical code examples and debugging techniques Key Features Gain hands-on expertise with real Linux subsystems: PCI, ALSA SoC, V4L2, and power management Apply advanced techniques for kernel debugging, regmap API, and custom hardware integration Build robust drivers through step-by-step examples and practical engineering insights Book DescriptionLinux is one of the fastest-growing operating systems around the world, and in the last few years, the Linux kernel has evolved significantly to support a wide variety of embedded devices with its improved subsystems and a range of new features. With this book, you’ll find out how you can enhance your skills to write custom device drivers for your Linux operating system. Mastering Linux Device Driver Development provides complete coverage of kernel topics, including video and audio frameworks, that usually go unaddressed. You’ll work with some of the most complex and impactful Linux kernel frameworks, such as PCI, ALSA for SoC, and Video4Linux2, and discover expert tips and best practices along the way. In addition to this, you’ll understand how to make the most of frameworks such as NVMEM and Watchdog. Once you’ve got to grips with Linux kernel helpers, you’ll advance to working with special device types such as Multi-Function Devices (MFD) followed by video and audio device drivers. By the end of this book, you’ll be able to write feature-rich device drivers and integrate them with some of the most complex Linux kernel frameworks, including V4L2 and ALSA for SoC.What you will learn Explore and adopt Linux kernel helpers for locking, work deferral, and interrupt management Understand the Regmap subsystem to manage memory accesses and work with the IRQ subsystem Get to grips with the PCI subsystem and write reliable drivers for PCI devices Write full multimedia device drivers using ALSA SoC and the V4L2 framework Build power-aware device drivers using the kernel power management framework Find out how to get the most out of miscellaneous kernel subsystems such as NVMEM and Watchdog Who this book is for This book is for embedded developers, Linux system engineers, and advanced programmers seeking to master Linux device driver development for custom hardware and peripherals. Readers should have C programming experience and a basic grasp of kernel concepts. Ideal for those wanting practical, project-based guidance on leveraging frameworks such as PCI, ALSA SoC, V4L2, and power management to build production-grade drivers.
show moreEmbedded Systems Architecture 2nd Edition
Daniele Lacamera
Design safe and reliable software for embedded systems and explore the internals of device drivers, RTOS, and TEE Key Features Identify and overcome challenges in embedded environments Understand and implement the steps required to increase the security of IoT solutions Build safety-critical and memory-safe parallel and distributed embedded systems Book DescriptionEmbedded Systems Architecture begins with a bird’s-eye view of embedded development and how it differs from the other systems that you may be familiar with. This book will help you get the hang of the internal working of various components in real-world systems. You’ll start by setting up a development environment and then move on to the core system architectural concepts, exploring system designs, boot-up mechanisms, and memory management. As you progress through the topics, you’ll explore the programming interface and device drivers to establish communication via TCP/IP and take measures to increase the security of IoT solutions. Finally, you’ll be introduced to multithreaded operating systems through the development of a scheduler and the use of hardware-assisted trusted execution mechanisms. With the help of this book, you will gain the confidence to work with embedded systems at an architectural level and become familiar with various aspects of embedded software development on microcontrollers—such as memory management, multithreading, and RTOS—an approach oriented to memory isolation.What you will learn Participate in the design and definition phase of an embedded product Get to grips with writing code for ARM Cortex-M microcontrollers Build an embedded development lab and optimize the workflow Secure embedded systems with TLS Demystify the architecture behind the communication interfaces Understand the design and development patterns for connected and distributed devices in the IoT Master multitasking parallel execution patterns and real-time operating systems Become familiar with Trusted Execution Environment (TEE) Who this book is for If you're a software developer or designer looking to learn about embedded programming, this is the book for you. You’ll also find this book useful if you’re a beginner or a less experienced embedded programmer on a quest to expand your knowledge on embedded systems.
show moreRISC-V Architecture and DSP Processor Design
Zhang Zhiwei
Explore the design of a RISC-V DSP processor using the SpringCore architecture, covering pipeline design, DSP acceleration, LLVM toolchain support, debugging with OpenOCD, and integration into a real SoC "Of all the RISC-V internals and design books, this is miles beyond the others. It is even superior to a vast majority of the community documentation, which can be vague. If you're working on a RISC-V project, this book is for you." - Matt St. Onge, CTO, Cyber Castle (ex-Principal Solutions Architect, Red Hat) Key Features Explore the SpringCore RISC-V DSP architecture and its custom ISA extensions Understand an 8-stage pipelined processor with Harvard memory and interrupt handling Examine the software ecosystem, including LLVM, Eclipse IDE, and OpenOCD debugging Book DescriptionRISC-V is reshaping processor innovation with its open and extensible instruction set architecture. But how are high-performance RISC-V digital signal processors (DSPs) designed in practice? This book explores that question through SpringCore, a RISC-V DSP architecture developed for real-time embedded control systems. Using SpringCore as a case study, the book introduces the architecture of a modern DSP processor and explains key digital design techniques used in its implementation. You will explore DSP architecture concepts, design custom ISA extensions for fixed-point and floating-point acceleration, and examine an 8-stage pipelined processor with hazard handling, zero-overhead loops, a Harvard memory architecture, protection mechanisms, and interrupt handling. The book also covers the surrounding software ecosystem, including an LLVM-based toolchain, debugging with OpenOCD and JTAG, development with an Eclipse-based IDE, and simulation support using tools such as gem5. Finally, it demonstrates how the SpringCore architecture is implemented in the FDM320RV335 DSP chip, which runs at 150 MHz and integrates peripherals such as an ADC and PWM for real-time industrial control. By the end, you will understand key DSP hardware architecture and custom ISA design principles through the practical example of SpringCore.What you will learn Understand DSP design principles and the RISC-V architecture Design custom ISA extensions for DSP acceleration Build an 8-stage pipelined RISC-V processor Implement high-performance MAC and multiplier units Design Harvard memory systems with protection mechanisms Optimize interrupt handling for real-time control Extend the LLVM backend for the SpringCore processor Develop software using the Eclipse IDE and OpenOCD debugging Who this book is for This book is for computer architects, embedded systems engineers, DSP engineers, and RTL/FPGA designers interested in RISC-V processor implementation. It is also suitable for graduate students and researchers in computer architecture, VLSI, and SoC design who want to explore the SpringCore DSP architecture and its implementation. Familiarity with digital logic and processor architecture will help readers get the most from this book.
show moreArchitecting and Building High-Speed SoCs
Mounir Maaref
Design a high-speed SoC while gaining a holistic view of the FPGA design flow and overcoming its challenges. Purchase of the print or kindle book includes a free eBook in the PDF format. Key FeaturesUse development tools to implement and verify an SoC, including ARM CPUs and the FPGA logicOvercome the challenge of time to market by using FPGA SoCs and avoid the prohibitive ASIC NRE costUnderstand the integration of custom logic accelerators and the SoC software and build themBook Description Modern and complex SoCs can adapt to many demanding system requirements by combining the processing power of ARM processors and the feature-rich Xilinx FPGAs. You'll need to understand many protocols, use a variety of internal and external interfaces, pinpoint the bottlenecks, and define the architecture of an SoC in an FPGA to produce a superior solution in a timely and cost-efficient manner. This book adopts a practical approach to helping you master both the hardware and software design flows, understand key interconnects and interfaces, analyze the system performance and enhance it using the acceleration techniques, and finally build an RTOS-based software application for an advanced SoC design. You'll start with an introduction to the FPGA SoCs technology fundamentals and their associated development design tools. Gradually, the book will guide you through building the SoC hardware and software, starting from the architecture definition to testing on a demo board or a virtual platform. The level of complexity evolves as the book progresses and covers advanced applications such as communications, security, and coherent hardware acceleration. By the end of this book, you'll have learned the concepts underlying FPGA SoCs' advanced features and you'll have constructed a high-speed SoC targeting a high-end FPGA from the ground up. What you will learnUnderstand SoC FPGAs' main features, advanced buses and interface protocolsDevelop and verify an SoC hardware platform targeting an FPGA-based SoCExplore and use the main tools for building the SoC hardware and softwareBuild advanced SoCs using hardware acceleration with custom IPsImplement an OS-based software application targeting an FPGA-based SoCUnderstand the hardware and software integration techniques for SoC FPGAsUse tools to co-debug the SoC software and hardwareGain insights into communication and DSP principles in FPGA-based SoCsWho this book is for This book is for FPGA and ASIC hardware and firmware developers, IoT engineers, SoC architects, and anyone interested in understanding the process of developing a complex SoC, including all aspects of the hardware design and the associated firmware design. Prior knowledge of digital electronics, and some experience of coding in VHDL or Verilog and C or a similar language suitable for embedded systems will be required for using this book. A general understanding of FPGA and CPU architecture will also be helpful but not mandatory.
show moreThe Insider's Guide to Arm Cortex-M Development
Zachary Lasiuk, Pareena Verma, Jason Andrews
Learn and implement the latest Arm Cortex-M microcontroller development concepts such as performance optimization, security, software reuse, machine learning, continuous integration, and cloud-based development from industry experts Key Features Learn how to select the best Cortex-M hardware, software, and tools for your project Understand the use of key software components and how to optimize and develop modern applications Get hands-on experience implementing quality software using example code provided in the book Purchase of the print or Kindle book includes a free eBook in the PDF format Book DescriptionCortex-M has been around since 2004, so why a new book now? With new microcontrollers based on the Cortex-M55 and Cortex-M85 being introduced this year, Cortex-M continues to expand. New software concepts, such as standardized software reuse, have emerged alongside new topics including security and machine learning. Development methodologies have also significantly advanced, with more embedded development taking place in the cloud and increased levels of automation. Due to these advances, a single engineer can no longer understand an entire project and requires new skills to be successful. This book provides a unique view of how to navigate and apply the latest concepts in microcontroller development. The book is split into two parts. First, you’ll be guided through how to select the ideal set of hardware, software, and tools for your specific project. Next, you’ll explore how to implement essential topics for modern embedded developers. Throughout the book, there are examples for you to learn by working with real Cortex-M devices with all software available on GitHub. You will gain experience with the small Cortex-M0+, the powerful Cortex-M55, and more Cortex-M processors. By the end of this book, you’ll be able to practically apply modern Cortex-M software development concepts.What you will learn Familiarize yourself with heuristics to identify the right components for your Cortex-M project Boot code to efficiently start up a Cortex-M device Optimize algorithms with compilers, middleware, and other means Get to grips with machine learning frameworks and implementation techniques Understand security in the embedded space with solutions like TrustZone and TF-M Explore cloud-based development methodologies to increase efficiency Dive into continuous integration frameworks and best practices Identify future trends that could impact Cortex-M software development Who this book is for This book is for practicing engineers and students working with embedded and IoT systems who want to quickly learn how to develop quality software for Arm Cortex-M processors without reading long technical manuals. If you’re looking for a book that explains C or assembly language programming for the purpose of creating a single application or mastering a type of programming such as digital signal processing algorithms, then this book is NOT for you. A basic understanding of embedded hardware and software, along with general C programming skills will assist with understanding the concepts covered in this book.
show moreC++ in Embedded Systems
Amar Mahmutbegović, Steve Branam
Go beyond C by applying modern C++ in embedded systems to enhance code readability, maintainability, and scalability Key Features Bridge the gap between C and modern C++ for embedded systems through practical examples Learn how to save memory and cut down on runtime computing using compile-time computation techniques Improve your software design skills by applying patterns to solve common problems in embedded systems using C++ Purchase of the print or Kindle book includes a free PDF eBook Book Description Transitioning from C can be daunting, with concerns about performance overhead, added complexity, and unfamiliar tooling. Addressing these challenges, Amar Mahmutbegovic, an advocate for modern C++ in embedded development, shows you how to harness zero-cost abstractions, compile-time checks, and powerful modern C++ capabilities to preserve performance while achieving safer, cleaner code. This book bridges the gap between traditional C and advanced C++, helping you retain the efficiency C developers demand while unlocking the safety and expressiveness of modern C++. Starting with a modern development environment setup, including a Docker container for seamless example replication, you'll overcome the hurdles of using the C++ standard library in memory-constrained settings and get acquainted with the Embedded Template Library (ETL) as an alternative. The book walks you through essential C++ concepts before exploring advanced topics such as templates, strong typing, error handling, compile-time computation, and RAII. Through practical examples, you'll implement a sequencer, write a type-safe HAL, and apply patterns like Command, State, and Observer to solve common embedded development problems. By the end of this book, you'll have learned how to apply modern C++ to develop robust, modular firmware with performance matching or exceeding hand-coded C solutions. What you will learn Debunk myths and misconceptions about using C++ in embedded systems Set up build automation tailored for C++ in constrained environments Leverage strong typing to improve type safety Apply modern C++ techniques, such as Resource Acquisition Is Initialization (RAII) Use Domain Specific Language (DSL) with a practical example using Boost SML Implement software development best practices, including the SOLID principle, in embedded development Who this book is for This book is for embedded developers who primarily use C and want to adopt a modern C++ approach. It introduces fundamental C++ concepts, making it suitable for beginners, while also assuming basic familiarity to fully leverage advanced features like compile-time computation. Even those with prior C++ experience will discover new ways to apply modern best practices to write more efficient and maintainable embedded applications.
show moreModern Computer Architecture and Organization 3rd Edition
Jim Ledin, Dave Farley
Explore modern computer architecture from transistors and instruction sets to cloud-scale systems, LLM platforms, and secure computing, with major updates and new chapters reflecting today's cloud and AI-driven computing landscape Key Features Understand modern processor and system architectures, spanning digital logic through x86/x64, ARM, and RISC-V Explore new and expanded topics, including GPUs, LLM platforms, cloud-scale systems, and cybersecurity Apply architectural principles to real-world systems, including confidential computing, blockchain, and autonomous platforms Book DescriptionComputer architecture now extends far beyond CPUs, forming the foundation of cloud platforms, AI systems, cybersecurity solutions, and emerging computing technologies. Modern Computer Architecture and Organization, Third Edition, provides a clear, end-to-end understanding of how today’s computer systems are built and why architectural decisions matter more than ever. You’ll begin with the fundamentals of digital logic, processor elements, memory systems, and the hardware–software interface, building a strong grounding that remains essential for every architect and systems engineer. Next, the book explores modern processor and memory architectures, performance-enhancing techniques, virtualization, and mainstream instruction sets, including x86, ARM, and an in-depth treatment of RISC-V. New and significantly expanded chapters extend this foundation into modern computing domains, including AI and large language model (LLM) computing platforms, GPUs, cloud-scale systems, confidential and security-focused architectures, blockchain and Bitcoin mining systems, self-driving vehicle architectures, and future directions such as quantum computing. This edition reflects today’s AI-driven, cloud-centric, security-aware computing landscape while remaining true to the classical principles that continue to underpin modern computer systems.What you will learn Understand digital logic, processor fundamentals, and memory systems Explore modern CPU, memory, and I/O architectures Compare x86, ARM, and innovative RISC-V designs Benefit from performance techniques like caching, pipelining, and parallelism Understand virtualization and cloud-scale computing systems Learn how AI and LLM computing platforms are architected Examine confidential computing and security-focused architectures Understand blockchain systems and bitcoin mining computer architectures Explore quantum computing and future computing technologies Who this book is for This book is designed for software developers, computer engineering and computer science students, system designers, and technical professionals seeking a clear understanding of modern computer architecture. It also suits general readers eager to understand how modern computing devices work. Readers working with PCs, mobile devices, cloud platforms, embedded systems, and AI workloads will gain practical insight to guide better design and performance decisions.
show moreThe FPGA Programming Handbook 2d Edition
Frank Bruno, Guy Eschemann
FPGAs empower you to accelerate problem-solving with custom hardware architectures. This book teaches SystemVerilog and VHDL programming, providing hands-on experience in crafting projects like calculators, keyboard interfaces, and VGA displays.
show moreZephyr RTOS Cookbook
Dr. Roy Jamil, Dr. Ayoub Bourjilat, Anas Nashif
Zephyr RTOS Cookbook delivers hands-on recipes for tackling real-world challenges in portable, scalable Zephyr application development Free with your book: DRM-free PDF version + access to Packt's next-gen Reader* Key Features Build and organize Zephyr applications using West to enable clean, reproducible, multi-repo workflows Configure features with Kconfig and describe hardware with DeviceTree Develop portable, scalable systems for industrial and IoT devices using Zephyr subsystems and the device driver model Book DescriptionAdopting Zephyr RTOS can feel very different from working with bare-metal systems, traditional RTOSes, or embedded Linux. Instead of tightly coupled board-specific code, Zephyr follows a platform-oriented approach built around reusable components, standardized subsystems, and configuration-driven behavior. This shift can be unfamiliar at first, especially for developers moving to Zephyr for real-world products. Zephyr RTOS Cookbook is a recipe-led guide designed to help you make that transition with confidence. Rather than treating Zephyr as just a kernel, the book shows how to work with it as a complete platform. You’ll learn how to structure projects using West-managed, multi-repo workspaces, enable and customize system features with Kconfig, and describe hardware cleanly using devicetree to keep applications portable across boards. Each recipe focuses on a practical task you’ll encounter when building Zephyr-based systems, from integrating drivers and subsystems to reasoning about initialization order, device availability, and permissions at runtime. By the end of the book, you’ll be able to develop maintainable Zephyr applications, adapt them to different hardware configurations, and confidently scale your codebase across projects and teams. Get a free FRDM-MCXN236 development board from NXP. Details are in the book.What you will learn Set up a reproducible Zephyr development environment and West workspace Structure apps and modules Navigate the Zephyr build flow and inspect key generated outputs Configure features with Kconfig Describe and customize hardware using devicetree Use common subsystems: GPIO, I2C, ADC, logging, and shell Apply user mode to enforce security Control peripherals from applications using drivers Who this book is for This book is for embedded developers and engineers transitioning to Zephyr from traditional RTOSes, bare-metal environments, or embedded Linux. It is aimed at readers with experience in embedded C who want to adopt Zephyr as a scalable platform for building portable systems that can be deployed consistently across multiple boards and development teams.
show moreEmbedded Linux Essentials Handbook
Mohammed Billoo
Get a complete overview of Embedded Linux, from the Kernel to Qt, and work through hands-on examples to build, simulate, and deploy real-world systems on Raspberry Pi 5 Key Features Learn by coding with real examples on Raspberry Pi 5 and QEMU (for those who don’t have access to hardware) Get introduced to Rust and see how it fits within an embedded Linux system Use Qt, a modern GUI framework, to create applications like a scientific instrument with live temperature sensor data Purchase of the print or Kindle book includes a free PDF eBook Book DescriptionEmbedded Linux now powers everything from IoT devices to industrial systems, making it essential for embedded software engineers to be skilled at customizing, deploying, and developing for these platforms. This hands-on guide walks you through the core concepts of Embedded Linux using practical, real-world examples on Raspberry Pi 4 and 5. For those without access to hardware, it also demonstrates how to simulate embedded Linux systems using QEMU. This book contains code samples that you can follow along and build three real-world projects: a Python web-based dashboard that retrieves and displays data from a temperature sensor and two GUI applications demonstrating how to use the Qt framework on Embedded Linux using two different development paradigms. You’ll also step into advanced territory with Linux kernel debugging techniques and discover how to harness eBPF, building the experience employers want and the confidence to tackle complex embedded challenges. By the end of this book, you'll have a solid grasp of Embedded Linux development and the skills to build and deploy production-ready, modern embedded applications.What you will learn Understand the architecture, components, and use cases of embedded Linux systems Debug and secure the Linux kernel and modern tools like eBPF Build custom embedded Linux images using Yocto and Buildroot Simulate custom embedded Linux images using QEMU Flash, boot, and validate images on Raspberry Pi hardware Develop, deploy, and debug applications using C/C++, Python, and Qt Automate image and application builds with Docker and GitHub Actions Apply your skills through hands-on projects such as web interfaces and complex GUI-based instruments Who this book is for This book is for beginner to intermediate embedded systems engineers, software developers, and enthusiasts seeking hands-on experience with Embedded Linux. It’s ideal for those eager to build real-world projects using accessible hardware like the Raspberry Pi. To get the most out of this book, you should understand basic embedded systems concepts, be comfortable writing simple programs in C, C++, or Python, and feel confident using the terminal and working with basic hardware.
show morePractical Debugging for Embedded ARM Systems
Nino Vidović, Patrick Kirner-Fehrenbach
Learn advanced debugging techniques for embedded ARM systems and uncover how to trace, profile, and analyze firmware issues using professional tools in real-world scenarios Free with your book: DRM-free PDF version + access to Packt's next-gen Reader* Key Features Explore advanced debugging tools like hardware tracing and power profiling Learn techniques for analyzing bootloaders, RTOS, and memory issues Apply practical debugging workflows based on ARM Cortex-M firmware examples Book DescriptionAre you truly unlocking the full potential of your embedded debugging tools? This hands-on guide cuts through the confusion of common workflows and shows you how to trace, profile, and debug ARM-based systems like a professional firmware engineer. Written by an industry expert, this book guides you through practical debugging scenarios using real hardware setups. You’ll explore both essential and advanced techniques, from setting breakpoints and analyzing memory to using hardware tracing, power profiling, and RTOS awareness. Through real-world crash analysis, you'll learn how to detect stack overflows, communication errors, memory leaks, and more. You will explore practical examples based on ARM Cortex-M target devices, which help you build structured and efficient debugging workflows. The learned skills can then be easily applied to other chip architectures as well. You’ll walk away with a clear understanding of the tools available, how to apply them in complex firmware projects, and the confidence to tackle even the most elusive bugs in production systems. Whether you’re refining your setup or debugging embedded systems at scale, this book will sharpen your skills and elevate your embedded development workflow. *Email sign-up and proof of purchase requiredWhat you will learn Set up a debugging workflows for ARM-based embedded systems Trace firmware execution using hardware tools Analyze stack, memory, and registers Debug bootloaders and bare-metal applications confidently Identify issues with power, interrupts, or RTOS Detect memory leaks Apply crash analysis techniques in real-world scenarios Use live symbol tracking and code profiling tools Who this book is for This book is ideal for embedded developers and firmware engineers working with ARM-based systems who want to improve their debugging workflows. It is not just a beginner’s guide, but a practical resource for those already familiar with building and programming embedded firmware. Whether you’re debugging bootloaders, analyzing RTOS behavior, or using advanced hardware tools, this book will help you streamline your workflow and solve complex issues with confidence.
show moreHands-On RTOS with Microcontrollers 2nd Edition
Jim Yuill, Penn Linder
Build reliable real-time embedded systems with FreeRTOS using practical techniques, professional tools, and industry-ready design practices Key Features Get up and running with the fundamentals of RTOS and apply them on STM32 Develop FreeRTOS-based applications with real-world timing and task handling Use advanced debugging and performance analysis tools to optimize applications Book DescriptionA real-time operating system (RTOS) is used to develop systems that respond to events within strict timelines. Real-time embedded systems have applications in various industries, from automotive and aerospace through to laboratory test equipment and consumer electronics. These systems provide consistent and reliable timing and are designed to run without intervention for years. This microcontrollers book starts by introducing you to the concept of RTOS and compares some other alternative methods for achieving real-time performance. Once you've understood the fundamentals, such as tasks, queues, mutexes, and semaphores, you'll learn what to look for when selecting a microcontroller and development environment. By working through examples that use an STM32F7 Nucleo board, the STM32CubeIDE, and SEGGER debug tools, including SEGGER J-Link, Ozone, and SystemView, you'll gain an understanding of preemptive scheduling policies and task communication. The book will then help you develop highly efficient low-level drivers and analyze their real-time performance and CPU utilization. Finally, you'll cover tips for troubleshooting and be able to take your new-found skills to the next level. By the end, you'll have built on your embedded system skills and will be able to create real-time systems using microcontrollers and FreeRTOS.What you will learn Understand when to use an RTOS for a project Explore RTOS concepts such as tasks, mutexes, semaphores, and queues Discover different microcontroller units (MCUs) and choose the best one for your project Evaluate and select the best IDE and middleware stack for your project Use professional-grade tools for analyzing and debugging your application Get FreeRTOS-based applications up and running on an STM32 board Who this book is for This book is for embedded engineers, students, or anyone interested in learning the complete RTOS feature set with embedded devices. A basic understanding of the C programming language and embedded systems or microcontrollers will be helpful.
show moreAUTOSAR Fundamentals and Applications
Hossam Soffar
Gain a holistic understanding of AUTOSAR concepts, from BSW and RTE integration to communication, security, and diagnostics, and learn to design high-performance automotive software solutions through real-world use cases Key Features Grasp core AUTOSAR concepts, such as layered architecture and methodology, through simplified explanations and practical examples Understand the role and integration of OS, communication stack, and security stack within electronic control units (ECUs) Learn best practices for designing automotive ECUs with AUTOSAR Purchase of the print or Kindle book includes a free PDF eBook Book DescriptionAUTOSAR has become the standard for developing automotive ECUs, driven by the demand for increasingly sophisticated features that require a robust, safe, secure, and scalable framework for efficient development for automotive software. For those new to AUTOSAR, its complexity, intricate architecture, and extensive standards can be daunting. With twelve years of experience in the automotive software industry, Hossam Soffar brings his unparalleled expertise to this essential AUTOSAR guide, addressing these challenges by explaining AUTOSAR's framework, architecture, and their application through best practices and real-world use cases. This book comprehensively explores AUTOSAR’s objectives, guiding you through its layered architecture and various stacks, components, and communication mechanisms. You’ll learn how to design, configure, and integrate AUTOSAR Basic Software (BSW) components, understand the real-time-environment (RTE), and master the principles of communications, diagnostics, security, and operating systems, all of which is essential for developing high-quality, safety-critical, and efficient ECUs. With a clear understanding of how these elements work together, you'll be equipped to navigate the complexities of modern automotive software development to build, implement, and manage automotive systems with enhanced efficiency.What you will learn Master the core principles, layered architecture, key components, and benefits of AUTOSAR Explore AUTOSAR-supported data exchange formats, memory management, and operating systems Get to grips with the design and implementation process of software components within AUTOSAR Understand the AUTOSAR Communication Stack, including modules such as COM and PDUR Discover security mechanisms for ensuring confidentiality and authorization in automotive systems Apply AUTOSAR concepts in real-time automotive systems through practical examples Who this book is for This book is for embedded software engineers, software developers, and software architects working with or planning to work with automotive systems, particularly those with little to no knowledge of AUTOSAR. It serves as a reference for project managers, students, and researchers who seek to learn about AUTOSAR and its applications. A background in software development processes and C programming is beneficial.
show moreMastering Embedded Linux Development
Frank Vasquez, Chris Simmonds
Architecting High-Performance Embedded Systems
Jim Ledin
Explore the complete process of developing systems based on field-programmable gate arrays (FPGAs), including the design of electronic circuits and the construction and debugging of prototype embedded devices Key Features Learn the basics of embedded systems and real-time operating systems Understand how FPGAs implement processing algorithms in hardware Design, construct, and debug custom digital systems from scratch using KiCad Book DescriptionModern digital devices used in homes, cars, and wearables contain highly sophisticated computing capabilities composed of embedded systems that generate, receive, and process digital data streams at rates up to multiple gigabits per second. This book will show you how to use Field Programmable Gate Arrays (FPGAs) and high-speed digital circuit design to create your own cutting-edge digital systems. Architecting High-Performance Embedded Systems takes you through the fundamental concepts of embedded systems, including real-time operation and the Internet of Things (IoT), and the architecture and capabilities of the latest generation of FPGAs. Using powerful free tools for FPGA design and electronic circuit design, you’ll learn how to design, build, test, and debug high-performance FPGA-based IoT devices. The book will also help you get up to speed with embedded system design, circuit design, hardware construction, firmware development, and debugging to produce a high-performance embedded device – a network-based digital oscilloscope. You’ll explore techniques such as designing four-layer printed circuit boards with high-speed differential signal pairs and assembling the board using surface-mount components. By the end of the book, you’ll have a solid understanding of the concepts underlying embedded systems and FPGAs and will be able to design and construct your own sophisticated digital devices.What you will learn Understand the fundamentals of real-time embedded systems and sensors Discover the capabilities of FPGAs and how to use FPGA development tools Learn the principles of digital circuit design and PCB layout with KiCad Construct high-speed circuit board prototypes at low cost Design and develop high-performance algorithms for FPGAs Develop robust, reliable, and efficient firmware in C Thoroughly test and debug embedded device hardware and firmware Who this book is for This book is for software developers, IoT engineers, and anyone who wants to understand the process of developing high-performance embedded systems. You’ll also find this book useful if you want to learn about the fundamentals of FPGA development and all aspects of firmware development in C and C++. Familiarity with the C language, digital circuits, and electronic soldering is necessary to get started.
show more