Embedded Systems Programming

  1. Hardware Fundamentals for Embedded Programming
    1. Processor Architectures
      1. Microcontrollers vs Microprocessors
        1. Architectural Differences
          1. Use Case Scenarios
            1. Selection Criteria
            2. ARM Architecture
              1. ARM Cortex-M Series
                1. Cortex-M0/M0+
                  1. Cortex-M3
                    1. Cortex-M4
                      1. Cortex-M7
                      2. ARM Cortex-A Series
                        1. Application Processor Features
                          1. Use Cases
                          2. ARM Instruction Set Architecture
                            1. Thumb Instruction Set
                              1. ARM Assembly Basics
                            2. RISC-V Architecture
                              1. RISC-V Core Features
                                1. Instruction Set Architecture
                                  1. Ecosystem and Toolchain
                                  2. AVR Architecture
                                    1. AVR Core Features
                                      1. Instruction Set
                                      2. PIC Architecture
                                        1. PIC Core Features
                                          1. Instruction Set
                                          2. x86 in Embedded Systems
                                            1. x86 Embedded Processors
                                              1. Use Cases and Considerations
                                            2. CPU Components and Operation
                                              1. Arithmetic Logic Unit (ALU)
                                                1. Operations and Functions
                                                  1. Flag Registers
                                                  2. Control Unit
                                                    1. Instruction Decoding
                                                      1. Control Signal Generation
                                                      2. Register File
                                                        1. General-Purpose Registers
                                                          1. Special-Purpose Registers
                                                            1. Status Registers
                                                            2. Instruction Pipeline
                                                              1. Fetch-Decode-Execute Cycle
                                                                1. Pipeline Stages
                                                                  1. Pipeline Hazards
                                                                2. Memory Systems
                                                                  1. Memory Hierarchy
                                                                    1. Cache Memory
                                                                      1. Main Memory
                                                                        1. Secondary Storage
                                                                        2. Volatile Memory
                                                                          1. Static RAM (SRAM)
                                                                            1. Structure and Characteristics
                                                                              1. Use Cases in Embedded Systems
                                                                              2. Dynamic RAM (DRAM)
                                                                                1. Structure and Characteristics
                                                                                  1. Refresh Requirements
                                                                                2. Non-Volatile Memory
                                                                                  1. Read-Only Memory (ROM)
                                                                                    1. Mask ROM
                                                                                      1. Programmable ROM (PROM)
                                                                                        1. Erasable PROM (EPROM)
                                                                                        2. Flash Memory
                                                                                          1. NOR Flash
                                                                                            1. Characteristics and Applications
                                                                                              1. Programming and Erasing
                                                                                              2. NAND Flash
                                                                                                1. Characteristics and Applications
                                                                                                  1. Wear Leveling
                                                                                                2. Electrically Erasable PROM (EEPROM)
                                                                                                  1. Characteristics and Applications
                                                                                                    1. Programming Considerations
                                                                                                  2. Memory Management Unit (MMU)
                                                                                                    1. Virtual Memory
                                                                                                      1. Memory Protection
                                                                                                        1. Address Translation
                                                                                                      2. Clock and Timing Systems
                                                                                                        1. Clock Sources
                                                                                                          1. Crystal Oscillators
                                                                                                            1. RC Oscillators
                                                                                                              1. Internal Oscillators
                                                                                                              2. Phase-Locked Loop (PLL)
                                                                                                                1. PLL Operation
                                                                                                                  1. Clock Multiplication
                                                                                                                    1. Jitter and Stability
                                                                                                                    2. Clock Distribution
                                                                                                                      1. Clock Trees
                                                                                                                        1. Clock Domains
                                                                                                                          1. Clock Gating
                                                                                                                          2. Timing Analysis
                                                                                                                            1. Setup and Hold Times
                                                                                                                              1. Clock Skew
                                                                                                                                1. Timing Constraints
                                                                                                                              2. Memory Architecture and Organization
                                                                                                                                1. Memory Map
                                                                                                                                  1. Address Space Layout
                                                                                                                                    1. Memory-Mapped I/O
                                                                                                                                      1. Peripheral Register Access
                                                                                                                                      2. Memory Sections
                                                                                                                                        1. Code Section (.text)
                                                                                                                                          1. Program Storage
                                                                                                                                            1. Instruction Alignment
                                                                                                                                            2. Initialized Data Section (.data)
                                                                                                                                              1. Global Variable Storage
                                                                                                                                                1. Initialization Process
                                                                                                                                                2. Uninitialized Data Section (.bss)
                                                                                                                                                  1. Zero-Initialized Variables
                                                                                                                                                    1. Memory Clearing
                                                                                                                                                    2. Stack Memory
                                                                                                                                                      1. Function Call Management
                                                                                                                                                        1. Local Variable Storage
                                                                                                                                                          1. Stack Pointer Management
                                                                                                                                                          2. Heap Memory
                                                                                                                                                            1. Dynamic Memory Allocation
                                                                                                                                                              1. Memory Fragmentation
                                                                                                                                                            2. Endianness
                                                                                                                                                              1. Big-Endian Format
                                                                                                                                                                1. Little-Endian Format
                                                                                                                                                                  1. Mixed-Endian Systems
                                                                                                                                                                    1. Endianness Conversion Techniques
                                                                                                                                                                  2. Essential Peripherals
                                                                                                                                                                    1. General Purpose Input/Output (GPIO)
                                                                                                                                                                      1. Pin Configuration
                                                                                                                                                                        1. Input Modes
                                                                                                                                                                          1. Output Modes
                                                                                                                                                                            1. Alternate Functions
                                                                                                                                                                            2. Pull-up and Pull-down Resistors
                                                                                                                                                                              1. Input Debouncing
                                                                                                                                                                                1. Hardware Debouncing
                                                                                                                                                                                  1. Software Debouncing
                                                                                                                                                                                  2. Interrupt Capabilities
                                                                                                                                                                                  3. Timers and Counters
                                                                                                                                                                                    1. Timer Types
                                                                                                                                                                                      1. Basic Timers
                                                                                                                                                                                        1. General-Purpose Timers
                                                                                                                                                                                          1. Advanced Timers
                                                                                                                                                                                          2. Timer Modes
                                                                                                                                                                                            1. One-Shot Mode
                                                                                                                                                                                              1. Continuous Mode
                                                                                                                                                                                                1. PWM Mode
                                                                                                                                                                                                2. Timer Interrupts
                                                                                                                                                                                                  1. Overflow Interrupts
                                                                                                                                                                                                    1. Compare Match Interrupts
                                                                                                                                                                                                    2. Applications
                                                                                                                                                                                                      1. Delay Generation
                                                                                                                                                                                                        1. Event Counting
                                                                                                                                                                                                          1. Frequency Measurement
                                                                                                                                                                                                        2. Analog-to-Digital Converters (ADC)
                                                                                                                                                                                                          1. ADC Types
                                                                                                                                                                                                            1. Successive Approximation
                                                                                                                                                                                                              1. Delta-Sigma
                                                                                                                                                                                                                1. Flash ADC
                                                                                                                                                                                                                2. Resolution and Accuracy
                                                                                                                                                                                                                  1. Sampling Rate
                                                                                                                                                                                                                    1. Multiple Channels
                                                                                                                                                                                                                      1. Reference Voltage
                                                                                                                                                                                                                        1. Signal Conditioning
                                                                                                                                                                                                                        2. Digital-to-Analog Converters (DAC)
                                                                                                                                                                                                                          1. DAC Types
                                                                                                                                                                                                                            1. R-2R Ladder
                                                                                                                                                                                                                              1. Delta-Sigma
                                                                                                                                                                                                                              2. Resolution and Accuracy
                                                                                                                                                                                                                                1. Output Range
                                                                                                                                                                                                                                2. Watchdog Timer
                                                                                                                                                                                                                                  1. Purpose and Operation
                                                                                                                                                                                                                                    1. Configuration Options
                                                                                                                                                                                                                                      1. Reset Generation
                                                                                                                                                                                                                                        1. Window Watchdog
                                                                                                                                                                                                                                        2. Direct Memory Access (DMA)
                                                                                                                                                                                                                                          1. DMA Controller
                                                                                                                                                                                                                                            1. DMA Channels
                                                                                                                                                                                                                                              1. Transfer Modes
                                                                                                                                                                                                                                                1. Memory-to-Memory
                                                                                                                                                                                                                                                  1. Memory-to-Peripheral
                                                                                                                                                                                                                                                    1. Peripheral-to-Memory
                                                                                                                                                                                                                                                    2. Interrupt Generation
                                                                                                                                                                                                                                                    3. Pulse Width Modulation (PWM)
                                                                                                                                                                                                                                                      1. PWM Signal Generation
                                                                                                                                                                                                                                                        1. Duty Cycle Control
                                                                                                                                                                                                                                                          1. Frequency Control
                                                                                                                                                                                                                                                            1. Applications
                                                                                                                                                                                                                                                              1. Motor Control
                                                                                                                                                                                                                                                                1. LED Dimming
                                                                                                                                                                                                                                                                  1. Audio Generation