№ | Chapter |
---|---|
1 | What is an Embedded System?An introduction to embedded systems .Core characteristics of embedded systems, constraints, real-time operation, and hardware/software co-design. |
2 | Types and Classifications of Embedded SystemsA university-level guide to classifying embedded systems. Explore standalone, real-time, networked, and mobile systems with Raspberry Pi 5 examples. |
3 | Real-World Examples of Embedded SystemsAn in-depth look at real-world embedded systems in consumer, automotive, industrial, and medical fields. Includes a practical Raspberry Pi 5 project. |
4 | An Introduction to Linux for Embedded ApplicationsA guide to the history of Linux and its use in embedded systems. Learn the fundamentals and compile your first kernel module on a Raspberry Pi 5. |
5 | Linux Kernel vs. Userspace in an Embedded ContextA guide to the Linux kernel vs. userspace architecture for embedded systems, using the Raspberry Pi 5 for practical C and Python examples. |
6 | Overview of Common Linux Distributions for Embedded SystemsA guide to embedded Linux distributions. Compare Debian, Yocto, Buildroot, OpenWrt, and Android for Raspberry Pi 5 development. |
7 | Advantages of Linux in Embedded SystemsDiscover the key advantages of using Linux in embedded systems. Open source, customization, hardware support, and networking for the Raspberry Pi 5. |
8 | Challenges and Disadvantages of Linux in Embedded SystemsAn analysis of the key challenges in embedded Linux development, covering resource requirements, real-time performance, system complexity, and GPL licensing. |
9 | Raspberry Pi 5 Hardware Overview: SoC and MemoryA closer look on the Raspberry Pi 5 hardware. Explore the BCM2712 SoC, Cortex-A76 CPU, VideoCore VII GPU, and LPDDR4X memory. |
10 | Raspberry Pi 5 Hardware Overview: Peripherals and I/OA guide to the Raspberry Pi 5 hardware. Learn about GPIO, USB 3.0, PCIe, MIPI, and networking for embedded Linux development. |
11 | Raspberry Pi 5 Power Requirements and ManagementA guide to Raspberry Pi 5 power requirements, including USB-C PD, the DA9091 PMIC, power measurement techniques, and Linux power management. |
12 | Setting Up Raspberry Pi 5: OS Installation (Raspberry Pi OS)A guide to setting up the Raspberry Pi 5. Learn to install Raspberry Pi OS, write to a microSD card, and perform the first boot. |
13 | Initial Config of Raspberry Pi 5 & Remote Access (SSH)Guide to the initial configuration of a Raspberry Pi 5, covering hostname, password, locale, Wi-Fi, and enabling secure remote access with SSH. |
14 | Linux Commands: File System Navigation (ls, cd, pwd)Learn how to navigate with essential Linux navigation commands (ls, cd, pwd) for embedded systems development on the Raspberry Pi 5. |
15 | Linux Commands: File Manipulation (cp, mv, rm, mkdir)Essential Linux file manipulation commands (cp, mv, rm, mkdir) for embedded systems development on the Raspberry Pi 5. Understand Linux filesystem hierarchy. |
16 | Linux Commands: Permissions (chmod, chown) and Links (ln)A guide to Linux file permissions and links. Learn to use chmod, chown, and ln on a Raspberry Pi 5 for secure embedded systems development. |
17 | Linux Commands: Process Management (ps, top, kill)Linux process management on the Raspberry Pi 5. Learn to use ps, top, and kill to monitor, analyze, and control embedded system processes. |
18 | Linux Commands: System Information (df, du, free, uname)A guide to essential Linux commands (df, du, free, uname) for monitoring disk space, memory, and system info on embedded systems like the Raspberry Pi 5. |
19 | Shell Scripting Basics: Introduction and First ScriptFundamentals of shell scripting in embedded Linux, covering the shell, shebang, and file permissions with practical Raspberry Pi 5 examples. |
20 | Shell Scripting: Variables and User InputA chapter on Embedded Linux shell scripting. Learn to use variables, command substitution, and read user input on the Raspberry Pi 5. |
21 | Shell Scripting: Control Flow (if, else, case)Shell scripting control flow for embedded Linux. Learn to use if, else, and case statements on the Raspberry Pi 5 with practical examples. |
22 | Shell Scripting: Loops (for, while, until)A complete guide to shell scripting loops (for, while, until) in embedded Linux using the Raspberry Pi 5. Learn iteration for automation. |
23 | Shell Scripting: Functions and Basic AutomationA high level guide to shell scripting functions in embedded Linux. Learn to define, call, and use functions for automation on a Raspberry Pi 5. |
24 | Advanced Shell Scripting: Regular Expressions (grep, sed)A high level chapter on mastering grep and sed with regular expressions for embedded Linux development on the Raspberry Pi 5. |
25 | Advanced Shell Scripting: awk for Text ProcessingA high level chapter on advanced awk scripting for embedded Linux. Learn to parse logs, process data, and generate reports on the Raspberry Pi 5. |
26 | Adv. Shell Scripting: Automating System Administration TasksAdvanced shell scripting for embedded Linux on the Raspberry Pi 5. Learn to automate system administration with robust scripts and practice with examples. |
27 | C Programming Refresher: Pointers and Memory AddressesA refresher chapter on C pointers for embedded systems. Learn memory addresses, dereferencing, and pointer arithmetic with practical Raspberry Pi 5 examples. |
28 | C Programming Refresher: Dynamic Memory Allocation in CA professional guide to dynamic memory allocation in C for embedded Linux. Learn malloc, calloc, realloc, and free on the Raspberry Pi 5. |
29 | C for Embedded Systems: Structures, Unions, and BitfieldsA chapter on advanced C programming for embedded Linux, covering structures, unions, and bitfields with practical examples for the Raspberry Pi 5. |
30 | C Programming Refresher: Basic File I/O in CA comprehensive chapter on C file I/O for embedded Linux. Learn fopen, fread, fwrite, and fprintf with practical Raspberry Pi 5 examples. |
31 | Python Programming for Embedded Systems: A RefresherA guide to Python for embedded systems on the Raspberry Pi 5. Covers core syntax, GPIO control, data logging, and common troubleshooting. |
32 | Python Refresher: Functions, Modules, and PackagesA refresher chapter on structuring Python code for embedded systems using functions, modules, and packages on the Raspberry Pi 5. |
33 | Python Libraries for Embedded Systems: gpiod, smbus2, spidevA high-level guide to embedded systems development on Raspberry Pi 5 using Python, covering gpiod, smbus2 for I2C, and spidev for SPI communication. |
34 | Dev. Environment: Native Compilation on RPi5 (GCC, Make)Native C/C++ development on the Raspberry Pi 5 using GCC and Make. Learn the full build process, from compilation to hardware IO. |
35 | Dev. Environment: Native Debugging with GDB on RPi5Native debugging of C/C++ applications on the Raspberry Pi 5 using the GNU Debugger (GDB), covering theory and hands-on examples. |
36 | Intro to Cross-Compilation: Why and HowCross-compilation for the Raspberry Pi 5. Learn the concepts, benefits, and practical applications of cross-compilation in embedded Linux development. |
37 | Cross-Compilation Toolchains: Components and TypesCross-compilation for embedded Linux. Learn about GCC, binutils, glibc, and musl, with practical examples for the Raspberry Pi 5. |
38 | Setting Up a Cross-Compilation Env. for RPi5 on a Host PCLearn to set up a professional cross-compilation environment on a host PC for Raspberry Pi 5 development, toolchain configuration and C/C++ compilation. |
39 | Using VS Code for C/C++ Cross-CompilationConfigure VS Code for C/C++ cross-compilation, targeting the Raspberry Pi 5. Learn to set up IntelliSense, build tasks, and remote GDB debugging. |
40 | Using VS Code for Python Development with Remote RPi5 AccessSetting up a professional Python development environment for the Raspberry Pi 5 using VS Code Remote – SSH for remote coding, debugging, and hardware control. |
41 | Version Control with Git: Core ConceptsLearn and apply git fundamentals for embedded Linux developers using the Raspberry Pi 5. Covers repository, staging, and commits. |
42 | Git: Branching, Merging, and Handling ConflictsLearn Git for embedded Linux. Learn branching, merging, conflict resolution, and rebasing with practical examples on the Raspberry Pi 5. |
43 | Git: Working with Remote Repositories (GitHub/GitLab)Using Git with remote repositories like GitHub on a Raspberry Pi 5. Covers clone, push, pull, fetch, SSH keys, and troubleshooting. |
44 | Debugging Techniques: Overview and Common StrategiesDebugging embedded Linux systems with the Raspberry Pi 5. Covers printf, logging with journald, assertions, and remote GDB. |
45 | Remote Debugging C/C++ Apps on RPi5 w GDBServer & VS CodeRemote debugging C/C++ applications on a Raspberry Pi 5 using GDB, GDBServer, and Visual Studio Code for a professional embedded Linux workflow. |
№ | Chapter |
---|---|
1 | Understanding the Linux Filesystem Hierarchy Standard (FHS)Linux Filesystem Hierarchy Standard (FHS) for embedded systems. Learn the purpose of /bin, /etc, /dev, /usr, and /var for robust development on Raspberry Pi. |
2 | Special Filesystems: /proc, /sys, and devtmpfsLearn Linux virtual filesystems. Learn to use /proc, /sys, and devtmpfs for system monitoring, hardware control, and device management on Raspberry Pi 5. |
3 | File I/O System Calls: open() and close()Learn open() and close() file I/O system calls. This chapter covers file descriptors, flags, and C code examples for Raspberry Pi. |
4 | File I/O System Calls: read() and write()Learn Linux file I/O with read() and write() system calls. This chapter covers file descriptors, error handling, and practical C examples for Raspberry Pi 5. |
5 | File I/O System Calls: lseek(), stat(), fstat(), lstat()Learn file positioning with lseek() and metadata retrieval with stat(), fstat(), and lstat() in embedded Linux. Learn practical C examples on Raspberry Pi 5. |
6 | File I/O System Calls: fcntl() for File ControlLearn to control file descriptor properties in embedded Linux using the fcntl() system call. Master non-blocking I/O on the Raspberry Pi 5. |
7 | Buffered I/O (stdio library) vs. Unbuffered I/O (Sys. Calls)Learn the critical differences between buffered stdio and unbuffered system call I/O in embedded Linux. Boost performance with C examples on Raspberry Pi 5. |
8 | Advanced File I/O: Scatter/Gather I/O (readv, writev)Scatter/gather I/O with readv and writev in Linux. Learn to read/write multiple buffers in one call for high-performance embedded systems on Raspberry Pi 5. |
9 | Advanced File I/O: Memory-Mapped Files (mmap, munmap)Learn advanced Linux file I/O with memory-mapped files. This guide covers mmap, munmap, and msync with C code examples for the Raspberry Pi 5. |
10 | Process Concepts: Process ID (PID), Parent PID (PPID), Process StatesLinux process management concepts like PID, PPID, and process states. Learn processes on a Raspberry Pi with practical C and shell examples. |
11 | Creating Processes: The fork() System CallLearn how the fork() system call creates new processes in Embedded Linux. Copy-on-Write (CoW), process memory, and practical C examples for Raspberry Pi. |
12 | Executing New Programs: The exec() Family of FunctionsLearn program execution in Embedded Linux with the exec() family. This guide covers execl, execv, execve, and more with practical C examples on Raspberry Pi 5. |
13 | Process Termination: exit(), _exit(), and Exit StatusLearn process termination in Embedded Linux with the Raspberry Pi 5. Master exit(), _exit(), atexit(), and handling exit statuses for robust system programming. |
14 | Waiting for Child Processes: wait() and waitpid()Learn to manage child processes in Embedded Linux with wait() and waitpid(). Process synchronization, handling zombies, and practical C examples. |
15 | Process Groups, Sessions, and Job ControlMaster Embedded Linux process management. Learn about process groups, sessions, and job control with C examples and Raspberry Pi 5 tutorials. |
16 | Signal Handling: Introduction to Signals and Default ActionsLinux signal handling for embedded systems. Learn to manage SIGINT, SIGTERM, and SIGCHLD to build robust applications and prevent zombie processes. |
17 | Signal Handling: Catching Signals w signal() & sigaction()Learn Linux applications signal handling. This chapter covers signal(), sigaction(), and signal masks with practical C examples for the Raspberry Pi 5. |
18 | Sending Signals: kill() and raise()Learn to control processes in embedded Linux using C. Covers sending signals with kill() and raise(), process groups, and error handling on Raspberry Pi 5. |
19 | Intro to Threads: Processes vs. ThreadsComparison of processes and threads. Learn about shared resources, race conditions, and multithreading with pthreads on Raspberry Pi. |
20 | POSIX Threads (Pthreads): Creation and TerminationDevelop multithreaded applications in C on Embedded Linux using the Pthreads API. This guide covers thread creation, termination, and data handling. |
21 | Thread Synchronization: The Need for SynchronizationThread synchronization in embedded Linux. Learn about race conditions and deadlocks with practical C examples for the Raspberry Pi 5. |
22 | Pthreads: Mutexes for Protecting Critical SectionsLearn to write thread-safe embedded Linux applications using pthreads. This guide covers mutexes for protecting critical sections and preventing race conditions |
23 | Pthreads: Condition Variables for Signaling Between ThreadsImplement robust inter-thread signaling in embedded Linux using Pthreads condition variables. This chapter covers pthread_cond_wait, signal, and broadcast. |
24 | Pthreads: Semaphores for Resource Counting & SynchronizationLearn to manage concurrent resource access in embedded Linux systems using POSIX semaphores. This guide covers sem_init, sem_wait, and sem_post. |
25 | Pthreads: Read-Write Locks for Optimizing Read-Heavy AccessMaster Pthreads read-write locks for high-performance concurrent programming. Learn to use pthread_rwlock to optimize read-heavy applications on Embedded Linux. |
26 | Inter-Process Communication (IPC): Overview of MechanismsLinux Inter-Process Communication (IPC) on embedded systems. Compare pipes, shared memory, sockets, and message queues with practical C/Python examples. |
27 | IPC: Unnamed Pipes (pipe()) for Parent-Child CommunicationIPC in Embedded Linux using unnamed pipes. Chapter covers the pipe() system call, parent-child data transfer, and creating shell pipelines on Raspberry Pi 5. |
28 | IPC: Named Pipes (FIFOs) for Com. bw Unrelated ProcessesLearn to implement robust Inter-Process Communication (IPC) in Embedded Linux using named pipes (FIFOs). Chapter covers mkfifo(), blocking/non-blocking I/O. |
29 | IPC: System V Message Queues (msgget, msgsnd, msgrcv,msgctl)Master System V message queues for robust inter-process communication (IPC). Learn to use msgget, msgsnd, msgrcv, and msgctl on the Raspberry Pi 5. |
30 | Inter-Process Communication: POSIX Message QueuesMaster POSIX message queues for robust Inter-Process Communication (IPC) in embedded Linux. Learn to use mq_open, mq_send, and mq_receive on Raspberry Pi 5. |
31 | IPC: System V Shared Memory (shmget, shmat, shmdt, shmctl)Learn to implement high-performance Inter-Process Communication (IPC) on Embedded Linux using System V shared memory, shmget, and shmat. |
32 | IPC: (shm_open, ftruncate, mmap, munmap, shm_unlink)Learn to implement high-performance Inter-Process Communication (IPC) on embedded Linux systems using POSIX shared memory, mmap. |
33 | IPC: System V Semaphores for Shared Memory SynchronizationPrevent race conditions in embedded Linux systems using System V semaphores. This chapter covers semget, semop, and semctl for shared memory synchronization. |
34 | IPC: Unix Domain Sockets for Local Inter-Process Comm.Learn to implement high-performance Inter-Process Communication (IPC) on Embedded Linux using Unix Domain Sockets, socketpair(), and file descriptor passing. |
35 | Memory Management in Linux: Virtual Memory & Paging ConceptsExplore Linux memory management concepts like virtual memory, paging, and the MMU. Learn to analyze and debug memory usage on embedded systems. |
36 | Process Address Space: Kernel Space vs. User Space LayoutLinux memory management by exploring the process address space. Learn about kernel vs. user space, text, data, BSS, heap, and stack segments. |
37 | Stack Memory Allocation and ManagementMaster stack memory in Embedded Linux. Learn about the function call stack, stack frames, and debugging stack overflows on the Raspberry Pi 5 with GDB. |