/Mastering_Embedded_Systems_Diploma

A tracker for my progress throughout the 'Mastering Embedded Systems' diploma under the supervision of Eng. Keroles Shenouda.

Primary LanguageC

Mastering Embedded Systems Diploma

Description

The Mastering Embedded Systems Diploma under the supervision of Eng. Keroles Shenouda focuses on embedded C code, writing drivers for MCU peripherals and communication protocols, and other embedded systems topics.

This repository acts as a tracker for my progress throughout the diploma by including all Assignments, Labs, Projects, and other Practice Codes.

All files are written in ANSI C Standard C89.

Contents

First Term    

Unit 1: Diploma Prerequisites     
Unit 2: C Programming         

  • Lesson 1. Introduction to Embedded Systems
  • Lesson 2. Git
  • Lesson 3. C Basics
  • Lesson 4. C Array & String
  • Lesson 5. C Functions
  • Lesson 6. Structures, Unions, and Enums
  • Lesson 7. Pre-processors Directives in C
  • Lesson 8. Pointers
Unit 3: Embedded C         

  • Lesson 1
  • Lesson 2
  • Lesson 3
  • Lesson 4
  • Lesson 5
Unit 4: System Architecture     

  • Lesson 1. Data Structures
  • Lesson 2. Embedded System Architecture - State Machines
  • Lesson 3. Embedded System Architecture - UML & MISRA-C
Unit 5: First Term Final        

  • Final Exam
  • 1st Term Project

Second Term  

Unit 6: MCU Fundamentals      

  • Lesson 1. Fundamentals (1)
  • Lesson 2. Fundamentals (2)
  • Lesson 3. MCU Clocks
  • Lesson 4. MCU Interrupts
Unit 7: MCU Essential Peripherals   

  • Lesson 1. GPIO (Part 1)
  • Lesson 2. GPIO (Part 2)
  • Lesson 3. GPIO (Part 3)
  • Lesson 4. External Interrupts (EXTI)
Unit 8: MCU Interfacing       

  • Lesson 1. MCU IO Electrical Characteristics
  • Lesson 2. UART
  • Lesson 3. UART Controller
  • Lesson 4. SPI
  • Lesson 5. SPI Controller
  • Lesson 6. I2C
  • Lesson 7. I2C Controller
Unit 9: MCU Timers/ADC       

  • Lesson 1. Timers
  • Lesson 2. ADC
Unit 10: Software Engineering    

  • Lesson 1. Verification and Validation
  • Lesson 2. Agile Scrum Methodology
  • Lesson 3. Test Case Design Techniques
Unit 11: Second Term Final      

  • Revision. Online Exams
  • Revision. Coding Test Online
  • Online Exam with Time Constraints
  • Online Interview 1
  • Online Interview 2
  • 2nd Term Project

Third Term    

Description for image

Unit 12: Advanced Topics      

Unit 13: Mastering CAN Protocol   

Unit 14: ARM & OS         

Unit 15: RTOS Basics         

Unit 16: AUTOSAR Basics       

Unit 17: Embedded Linux Basics