Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zaki-x86/es-notes

Embedded systems notes
https://github.com/zaki-x86/es-notes

avr c cpp electrical-engineering embedded-linux embedded-system-design embedded-systems rtos

Last synced: 16 days ago
JSON representation

Embedded systems notes

Awesome Lists containing this project

README

        

# 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.

2. **Electronic Devices and Circuits:**

* Diodes and transistors.
* Operational amplifiers.
* Power supplies.
* Digital logic circuits.

3. **Basic Knowledge of Signals and Systems:**

* Time and frequency domains.
* Analog and digital signals.
* Fourier series and transform.
* Sampling and quantization.

4. **Basic Knowledge of Control Systems:**

* Closed-loop feedback control systems.
* Transfer functions and block diagrams.
* Stability and performance analysis.
* PID controllers.

5. **Introduction to Microcontrollers and Embedded Systems:**

* Microprocessor architecture and design.
* Microcontroller main components.
* Microcontroller vs Microprocessor.
* Memory types and interface with CPU.

6. **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.

2. **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).

2. **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