Skip to content

zaki-x86/es-notes

Repository files navigation

Embedded Systems Master Class

Milestone 1: Electrical Engineering Basics

  1. Basic Electrical Concepts and Circuit Analysis:
  • Electrical quantities (current, voltage, resistance).
  • Ohm's law and Kirchhoff's laws.
  • DC and AC circuits.
  • Capacitors, inductors, and transformers.
  • Basic circuit analysis techniques.
  1. Electronic Devices and Circuits:
  • Diodes and transistors.
  • Operational amplifiers.
  • Power supplies.
  • Digital logic circuits.
  1. Basic Knowledge of Signals and Systems:
  • Time and frequency domains.
  • Analog and digital signals.
  • Fourier series and transform.
  • Sampling and quantization.
  1. Basic Knowledge of Control Systems:
  • Closed-loop feedback control systems.
  • Transfer functions and block diagrams.
  • Stability and performance analysis.
  • PID controllers.
  1. Introduction to Microcontrollers and Embedded Systems:
  • Microprocessor architecture and design.
  • Microcontroller main components.
  • Microcontroller vs Microprocessor.
  • Memory types and interface with CPU.
  1. Advanced Topics:
  • Power electronics and renewable energy.
  • Communication systems and protocols.
  • Control of electric drives.
  • Electromagnetic compatibility.

Milestone 2: C and Embedded C Programming

  1. C Programming Language
  • Introduction to basic syntax of C.
  • How to build C files using command line interface.
  • Data types and variable scope vs lifetime.
  • Bit manipulation.
  • Functions and type casting.
  • Array and Pointers.
  • C String.
  • Keywords (const, volatile, static, extern, register).
  • Structure and Union.
  • Typedef vs Enum.
  • Dynamic allocation.
  • Preprocessing directives.
  1. Embedded C Programming
  • Embedded C Definition
  • C Compilation Process.
  • In-line Assembly (How to write assembly with C code).
  • Memory Mapped Registers.
  • Modular Programming and Software Layered Architecture Design.
  • Critical Section and Call Back Function.
  • Synchronous vs. Asynchronous Function.
  • Reentrant vs. Non-Reentrant Function.
  • Startup code vs bootloader.
  • Embedded HW tools (Emulator, Debugger and Flasher).
  • Embedded SW tools (Tool-chains, compilers and Simulator).
  • Linker script and Makefile.
  • Interrupt Handling.
  • DMA and watchdog.
  • Embedded C interview tricks.

Milestone 3: Interfacing with AVR Microcontrollers

  1. Learn the basics of microcontrollers
  • Introduction to AVR Microcontrollers.
  • File architecture and abstraction layer.
  • I/O Ports and interfacing with switch, led and seven segment.
  • Timer modes (output compare – input capture – PWM – normal – frequency generator).
  • External Interrupts.
  • Interfacing with EEPROM.
  • Analog to digital converter (ADC).
  • Interface with keypad and LCD.
  • Interface with communication protocol:
  • Universal Asynchronous receiver transmitter (UART).
  • Inter integrated circuit (I2C).
  • Serial peripheral interface (SPI).
  1. Develop a basic embedded system project using a microcontroller, such as a traffic light control system or a temperature sensing system:

    • Project planning and design
    • Breadboarding and prototyping
    • Code implementation and debugging
    • Testing and validation

Milestone 4: Advanced Embedded Systems

  1. Learn about advanced embedded systems concepts such as interrupts, timers, and communication protocols like SPI, I2C, UART, and CAN:

    • Interrupt handling and nesting
    • Timers and watchdog timers
    • Serial Peripheral Interface (SPI) protocol
    • Inter-Integrated Circuit (I2C) protocol
    • Universal Asynchronous Receiver/Transmitter (UART) protocol
    • Controller Area Network (CAN) protocol
  2. Study the basics of real-time operating systems (RTOS) and how they can be used in embedded systems:

    • Real-time constraints and requirements
    • Task scheduling and priorities
    • Semaphore and Mutexes
    • Memory Management in RTOS
    • RTOS for embedded systems
  3. Develop an advanced embedded project such as a home automation system or a wireless sensor network using multiple microcontrollers:

    • Project planning and design
    • Hardware and software interfacing
    • Multi-threading and synchronization
    • Communication between multiple microcontrollers
    • System integration and testing

Milestone 5: Automotive Embedded Systems

  1. Study automotive embedded systems, including standards such as AUTOSAR and CAN bus communication:

    • Introduction to AUTOSAR architecture and methodology
    • CAN bus architecture and protocol
    • AUTOSAR software components and APIs
    • Diagnostics and calibration of embedded systems in automotive industry
  2. Learn about automotive software development processes and standards:

    • Automotive SPICE (Software Process Improvement and Capability Determination)
    • ISO 26262 (Functional Safety of Road Vehicles)
    • Automotive software validation and verification
    • Model-Based Design
  3. Develop an automotive embedded project, such as an OBD-II diagnostic tool or a car data logger:

    • Understanding of vehicle diagnostics and communication protocols
    • Design and development of a custom OBD-II diagnostic tool
    • Car data logger project design and implementation
    • Functional Safety and cybersecurity in automotive systems