Embedded Systems Programming

  1. Real-Time Systems and Operating Systems
    1. Real-Time System Fundamentals
      1. Real-Time Constraints
        1. Timing Requirements
          1. Deterministic Behavior
            1. Predictable Response Times
            2. Types of Real-Time Systems
              1. Hard Real-Time Systems
                1. Soft Real-Time Systems
                  1. Firm Real-Time Systems
                  2. Real-Time Metrics
                    1. Response Time
                      1. Latency
                        1. Jitter
                          1. Throughput
                          2. Scheduling Theory
                            1. Task Models
                              1. Schedulability Analysis
                                1. Worst-Case Execution Time
                              2. Bare-Metal Programming
                                1. System Initialization
                                  1. Reset Vector
                                    1. Stack Initialization
                                      1. Memory Initialization
                                        1. Peripheral Initialization
                                        2. Main Loop Architecture
                                          1. Polling-Based Systems
                                            1. State Machine Implementation
                                              1. Event-Driven Programming
                                              2. Interrupt-Driven Programming
                                                1. Interrupt Service Routines
                                                  1. Interrupt Priorities
                                                    1. Nested Interrupts
                                                      1. Interrupt Latency
                                                    2. Real-Time Operating Systems (RTOS)
                                                      1. RTOS Concepts
                                                        1. Kernel Services
                                                          1. Task Management
                                                            1. Resource Management
                                                              1. Time Management
                                                              2. Task Management
                                                                1. Task Creation and Deletion
                                                                  1. Task States
                                                                    1. Ready State
                                                                      1. Running State
                                                                        1. Blocked State
                                                                          1. Suspended State
                                                                          2. Task Control Blocks
                                                                            1. Context Switching
                                                                            2. Scheduling Algorithms
                                                                              1. Priority-Based Scheduling
                                                                                1. Preemptive Scheduling
                                                                                  1. Non-Preemptive Scheduling
                                                                                    1. Round-Robin Scheduling
                                                                                      1. Rate Monotonic Scheduling
                                                                                        1. Earliest Deadline First
                                                                                        2. Inter-Task Communication
                                                                                          1. Message Queues
                                                                                            1. Queue Creation
                                                                                              1. Message Passing
                                                                                                1. Queue Management
                                                                                                2. Semaphores
                                                                                                  1. Binary Semaphores
                                                                                                    1. Counting Semaphores
                                                                                                      1. Semaphore Operations
                                                                                                      2. Mutexes
                                                                                                        1. Mutual Exclusion
                                                                                                          1. Priority Inheritance
                                                                                                            1. Deadlock Prevention
                                                                                                            2. Event Flags
                                                                                                              1. Event Groups
                                                                                                                1. Event Synchronization
                                                                                                                2. Mailboxes
                                                                                                                  1. Message Delivery
                                                                                                                    1. Mailbox Management
                                                                                                                  2. Memory Management
                                                                                                                    1. Static Memory Allocation
                                                                                                                      1. Dynamic Memory Allocation
                                                                                                                        1. Memory Pools
                                                                                                                          1. Memory Protection
                                                                                                                          2. Timing Services
                                                                                                                            1. Software Timers
                                                                                                                              1. Delay Functions
                                                                                                                                1. Periodic Tasks
                                                                                                                                  1. Timeout Management
                                                                                                                                2. Common RTOS Issues
                                                                                                                                  1. Priority Inversion
                                                                                                                                    1. Causes and Effects
                                                                                                                                      1. Priority Inheritance Protocol
                                                                                                                                        1. Priority Ceiling Protocol
                                                                                                                                        2. Deadlock
                                                                                                                                          1. Deadlock Conditions
                                                                                                                                            1. Detection Methods
                                                                                                                                              1. Prevention Strategies
                                                                                                                                                1. Recovery Techniques
                                                                                                                                                2. Race Conditions
                                                                                                                                                  1. Critical Sections
                                                                                                                                                    1. Atomic Operations
                                                                                                                                                      1. Synchronization Mechanisms
                                                                                                                                                      2. Starvation
                                                                                                                                                        1. Causes and Prevention
                                                                                                                                                          1. Fair Scheduling