This is a repo for Embedded Systems Diploma under supervision of Eng. Mohamed Abdelbasit which contains my tasks, sheets, projects and implemented drivers all by me.
AVR
- Embedded Systems Definition and Applications
- Embedded HW
- Microprocessor vs. Microcontroller
- Microcontroller Main Components
- Tools
- Introduction to C Programming
- Structured Program Development in C
- C Data Types and Operators
- If Statements and Switch Cases
- C Loops
- C Functions
- C Pointers and Casting
- C Arrays
- C Strings
- Arrays of Pointers vs. 2D Arrays
- Bitwise Operations
- Structures, Unions and Enumerations
- Bit-Fields and its Usage
- C Preprocessor Directives
- Time Complexity, Space Complexity and Optimizations
- Sorting and Searching Algorithms
- Static & Dynamic Memory Allocation
- Linked-List
- Queue & Stack
- C Project
- Microprocessor Architecture
- Memory Types
- AVR Microcontroller Architecture
- C Building Process
- Error Types
- C Variable Scope and Lifetime
- Key Words
- Startup Code
- Memory Segments
- Pointer to Function & Call back Functions
- Stack and Stack Test
- Boot loader
- Modular Program and Static Design
- Memory Mapped Registers
- Software Architecture
- DIO and Interfacing with switch, LED, 7-seg
- LED's arrays and switches projects
- Key bad & LCD
- Calculator project, hex binary decimal converter
- Internal EEPROM
- Smart lock project
- ADC & Analog sensors
- LM35 and fire system project
- Watchdog timer
- External Interrupts
- Reentrant, Non-Reentrant Function
- Timers Hardware & modes
- Many applications on non PWM modes
- PWM & motors control DC, Servo
- ICU & interface with Ultrasonic & DHT22
- Projects on timers and ADC
- UART, communicate with Laptop
- UART Stack
- Synchronous vs. Asynchronous API for UART
- SPI
- I2C & interface with external EEPROM
- Mini project to interface peripherals together
- Building your scheduler
- Foreground/background systems
- Real time systems
- Types of real time systems
- Multi-tasking. Scheduling
- Free RTOS Porting to AT mega 32
- TCB & Task status
- Shared resource problem & Critical Section
- Binary semaphores
- Counting semaphores & event group
- Priority inversion and deadlocks
- Mutex -Priority inheritance & ceiling
- Queue management
- CAN
- LIN
- Embedded Systems Development Cycle
- V Model
- Testing types, Testing levels & Testing activities
- Verification and validation
- Testing techniques (white box, black box)