|
9 | 9 |
|
10 | 10 | --- |
11 | 11 |
|
| 12 | +## 🎯 **Quick Start Guide** |
| 13 | + |
| 14 | +### **🟢 New to Embedded Systems?** |
| 15 | +Start here → [C Programming Basics](#a-cc-programming-🟢) → [Basic Data Structures](#b-data-structures--implementation-🟡) → [UART Communication](Bus_Protocol/uart.md) |
| 16 | + |
| 17 | +### **🟡 Have Some Experience?** |
| 18 | +Jump to → [Advanced C/C++](#a-cc-programming-🟢) → [Bus Protocols](#c-bus-protocols-🟡) → [Operating Systems](#d-operating-systems-🔴) |
| 19 | + |
| 20 | +### **🔴 Experienced Engineer?** |
| 21 | +Explore → [Computer Architecture](#e-computer-architecture-🔴) → [System Design](#f-interview-preparation-🎯) → [Advanced Topics](#g-hands-on-projects-🛠️) |
| 22 | + |
| 23 | +--- |
| 24 | + |
12 | 25 | ## 📚 **Learning Paths** |
13 | 26 |
|
14 | | -### 🟢 **Beginner Path (0-6 months)** |
| 27 | +### **🟢 Beginner Path (0-6 months)** |
15 | 28 | *For those new to embedded systems or transitioning from other fields* |
16 | 29 |
|
17 | 30 | #### **Phase 1: Programming Fundamentals (4 weeks)** |
18 | | -- [ ] **C Programming Basics** |
19 | | - - [C Overview](https://embeddedworlddevelopers.blogspot.com/p/c-language.html) |
20 | | - - [C/C++ Preprocessor Directives](https://www.tenouk.com/Module10.html) |
21 | | - - [C/C++ Type Specifiers](https://www.tenouk.com/Module11.html) |
22 | | - - [Structure Member Alignment, Padding and Data Packing](https://www.geeksforgeeks.org/structure-member-alignment-padding-and-data-packing/) |
23 | | - - [Memory Alignment](https://embeddedartistry.com/blog/2017/02/22/generating-aligned-memory/) |
24 | | - |
25 | | -- [ ] **Basic Data Structures** |
26 | | - - [Arrays and Linked Lists](Data_Struct_Implementation/queue/README.md) |
27 | | - - [Stacks and Queues](Data_Struct_Implementation/stack/README.md) |
28 | | - - [Hash Tables](Data_Struct_Implementation/hashTable/README.md) |
| 31 | +**C Programming Basics** |
| 32 | +- [C Overview](https://embeddedworlddevelopers.blogspot.com/p/c-language.html) |
| 33 | +- [C/C++ Preprocessor Directives](https://www.tenouk.com/Module10.html) |
| 34 | +- [C/C++ Type Specifiers](https://www.tenouk.com/Module11.html) |
| 35 | +- [Structure Member Alignment, Padding and Data Packing](https://www.geeksforgeeks.org/structure-member-alignment-padding-and-data-packing/) |
| 36 | +- [Memory Alignment](https://embeddedartistry.com/blog/2017/02/22/generating-aligned-memory/) |
| 37 | + |
| 38 | +**Basic Data Structures** |
| 39 | +- [Arrays and Linked Lists](Data_Struct_Implementation/queue/README.md) |
| 40 | +- [Stacks and Queues](Data_Struct_Implementation/stack/README.md) |
| 41 | +- [Hash Tables](Data_Struct_Implementation/hashTable/README.md) |
29 | 42 |
|
30 | 43 | #### **Phase 2: Embedded Basics (4 weeks)** |
31 | | -- [ ] **Hardware Fundamentals** |
32 | | - - [GPIO and Basic I/O](HW_Module/Flash_Storage.md) |
33 | | - - [Timers and Interrupts](Operating_System/Interrupt.md) |
34 | | - - [UART Communication](Bus_Protocol/uart.md) |
| 44 | +**Hardware Fundamentals** |
| 45 | +- [GPIO and Basic I/O](HW_Module/Flash_Storage.md) |
| 46 | +- [Timers and Interrupts](Operating_System/Interrupt.md) |
| 47 | +- [UART Communication](Bus_Protocol/uart.md) |
35 | 48 |
|
36 | | -- [ ] **Basic Algorithms** |
37 | | - - [Bubble Sort](Data_Struct_Implementation/bubbleSort/bubbleSort.md) |
38 | | - - [Insertion Sort](Data_Struct_Implementation/insertionSort/insertionSort.md) |
39 | | - - [Binary Search](Data_Struct_Implementation/BST/README.md) |
| 49 | +**Basic Algorithms** |
| 50 | +- [Bubble Sort](Data_Struct_Implementation/bubbleSort/bubbleSort.md) |
| 51 | +- [Insertion Sort](Data_Struct_Implementation/insertionSort/insertionSort.md) |
| 52 | +- [Binary Search](Data_Struct_Implementation/BST/README.md) |
40 | 53 |
|
41 | 54 | #### **Phase 3: System Concepts (4 weeks)** |
42 | | -- [ ] **Operating System Basics** |
43 | | - - [Process Management](Operating_System/Process/Process.md) |
44 | | - - [Memory Management](Operating_System/virtual_memory.md) |
45 | | - - [Interrupts and Exceptions](Operating_System/Interrupt.md) |
| 55 | +**Operating System Basics** |
| 56 | +- [Process Management](Operating_System/Process/Process.md) |
| 57 | +- [Memory Management](Operating_System/virtual_memory.md) |
| 58 | +- [Interrupts and Exceptions](Operating_System/Interrupt.md) |
46 | 59 |
|
47 | | -### 🟡 **Intermediate Path (6-12 months)** |
| 60 | +### **🟡 Intermediate Path (6-12 months)** |
48 | 61 | *For those with basic embedded knowledge* |
49 | 62 |
|
50 | 63 | #### **Phase 1: Advanced Programming (6 weeks)** |
51 | | -- [ ] **Advanced C/C++** |
52 | | - - [Inline Assembly](https://wiki.osdev.org/Inline_Assembly) |
53 | | - - [Concurrency and Threading](Data_Struct_Implementation/concurrency/) |
54 | | - - [Memory Management](Data_Struct_Implementation/memoryPoolAllocator/README.md) |
| 64 | +**Advanced C/C++** |
| 65 | +- [Inline Assembly](https://wiki.osdev.org/Inline_Assembly) |
| 66 | +- [Concurrency and Threading](Data_Struct_Implementation/concurrency/) |
| 67 | +- [Memory Management](Data_Struct_Implementation/memoryPoolAllocator/README.md) |
55 | 68 |
|
56 | | -- [ ] **Data Structures & Algorithms** |
57 | | - - [Binary Search Trees](Data_Struct_Implementation/BST/README.md) |
58 | | - - [Heaps and Priority Queues](Data_Struct_Implementation/binaryHeap/README.md) |
59 | | - - [Ring Buffers](Data_Struct_Implementation/circularRingBuffer/README.md) |
| 69 | +**Data Structures & Algorithms** |
| 70 | +- [Binary Search Trees](Data_Struct_Implementation/BST/README.md) |
| 71 | +- [Heaps and Priority Queues](Data_Struct_Implementation/binaryHeap/README.md) |
| 72 | +- [Ring Buffers](Data_Struct_Implementation/circularRingBuffer/README.md) |
60 | 73 |
|
61 | 74 | #### **Phase 2: Communication Protocols (4 weeks)** |
62 | | -- [ ] **Serial Communication** |
63 | | - - [I2C Protocol](Bus_Protocol/i2c.md) |
64 | | - - [SPI Protocol](Bus_Protocol/spi.md) |
65 | | - - [UART/RS232](Bus_Protocol/uart.md) |
| 75 | +**Serial Communication** |
| 76 | +- [I2C Protocol](Bus_Protocol/i2c.md) |
| 77 | +- [SPI Protocol](Bus_Protocol/spi.md) |
| 78 | +- [UART/RS232](Bus_Protocol/uart.md) |
66 | 79 |
|
67 | | -- [ ] **Network Protocols** |
68 | | - - [TCP/UDP](Network/tcp_udp_ip.md) |
69 | | - - [Ethernet](Network/ethernet.md) |
70 | | - - [ARP/MAC](Network/ARP.md) |
| 80 | +**Network Protocols** |
| 81 | +- [TCP/UDP](Network/tcp_udp_ip.md) |
| 82 | +- [Ethernet](Network/ethernet.md) |
| 83 | +- [ARP/MAC](Network/ARP.md) |
71 | 84 |
|
72 | 85 | #### **Phase 3: System Design (6 weeks)** |
73 | | -- [ ] **Real-Time Systems** |
74 | | - - [FreeRTOS Basics](Operating_System/freertos/firmware_stack.md) |
75 | | - - [Scheduling Algorithms](Operating_System/Process/Process_thread_scheduling.md) |
76 | | - - [State Machines](Data_Struct_Implementation/stateMachine/README.md) |
| 86 | +**Real-Time Systems** |
| 87 | +- [FreeRTOS Basics](Operating_System/freertos/firmware_stack.md) |
| 88 | +- [Scheduling Algorithms](Operating_System/Process/Process_thread_scheduling.md) |
| 89 | +- [State Machines](Data_Struct_Implementation/stateMachine/README.md) |
77 | 90 |
|
78 | | -### 🔴 **Advanced Path (12+ months)** |
| 91 | +### **🔴 Advanced Path (12+ months)** |
79 | 92 | *For experienced embedded engineers* |
80 | 93 |
|
81 | 94 | #### **Phase 1: Computer Architecture (6 weeks)** |
82 | | -- [ ] **ARM Architecture** |
83 | | - - [ARM Overview](https://wiki.osdev.org/ARM_Overview) |
84 | | - - [ARM Assembly](https://azeria-labs.com/writing-arm-assembly-part-1/) |
85 | | - - [Memory Hierarchy](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf) |
| 95 | +**ARM Architecture** |
| 96 | +- [ARM Overview](https://wiki.osdev.org/ARM_Overview) |
| 97 | +- [ARM Assembly](https://azeria-labs.com/writing-arm-assembly-part-1/) |
| 98 | +- [Memory Hierarchy](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf) |
86 | 99 |
|
87 | | -- [ ] **Advanced Memory** |
88 | | - - [Cache Memory](https://www.geeksforgeeks.org/cache-memory-in-computer-organization/) |
89 | | - - [DMA](Computer_architecture/dma.md) |
90 | | - - [TLB](Computer_architecture/tlb.md) |
| 100 | +**Advanced Memory** |
| 101 | +- [Cache Memory](https://www.geeksforgeeks.org/cache-memory-in-computer-organization/) |
| 102 | +- [DMA](Computer_architecture/dma.md) |
| 103 | +- [TLB](Computer_architecture/tlb.md) |
91 | 104 |
|
92 | 105 | #### **Phase 2: System Design (8 weeks)** |
93 | | -- [ ] **Distributed Systems** |
94 | | - - [System Design Basics](Interview/SystemDesign/systemDesign.md) |
95 | | - - [Load Balancing](Interview/SystemDesign/loadBalancing.md) |
96 | | - - [Caching Strategies](Interview/SystemDesign/caching.md) |
| 106 | +**Distributed Systems** |
| 107 | +- [System Design Basics](Interview/SystemDesign/systemDesign.md) |
| 108 | +- [Load Balancing](Interview/SystemDesign/loadBalancing.md) |
| 109 | +- [Caching Strategies](Interview/SystemDesign/caching.md) |
97 | 110 |
|
98 | | -- [ ] **Embedded Security** |
99 | | - - [TPM 2.0](Security/TPM.md) |
100 | | - - [ARM TrustZone](https://embeddedsecurity.io/) |
101 | | - - [Encryption Algorithms](Security/) |
| 111 | +**Embedded Security** |
| 112 | +- [TPM 2.0](Security/TPM.md) |
| 113 | +- [ARM TrustZone](https://embeddedsecurity.io/) |
| 114 | +- [Encryption Algorithms](Security/) |
102 | 115 |
|
103 | 116 | --- |
104 | 117 |
|
|
107 | 120 | ### **📖 Core Concepts** |
108 | 121 | | Topic | Difficulty | Status | |
109 | 122 | |-------|------------|--------| |
110 | | -| [C/C++ Programming](#a-cc-coding-specific) | 🟢 Beginner | ✅ Complete | |
111 | | -| [Data Structures & Algorithms](#c-data-structures--implementation) | 🟡 Intermediate | ✅ Complete | |
112 | | -| [Bus Protocols](#f-bus) | 🟡 Intermediate | ✅ Complete | |
113 | | -| [Operating Systems](#h-operating-systems) | 🔴 Advanced | ✅ Complete | |
114 | | -| [Computer Architecture](#i-computer-architecture) | 🔴 Advanced | ✅ Complete | |
| 123 | +| [C/C++ Programming](#a-cc-programming-🟢) | 🟢 Beginner | ✅ Complete | |
| 124 | +| [Data Structures & Algorithms](#b-data-structures--implementation-🟡) | 🟡 Intermediate | ✅ Complete | |
| 125 | +| [Bus Protocols](#c-bus-protocols-🟡) | 🟡 Intermediate | ✅ Complete | |
| 126 | +| [Operating Systems](#d-operating-systems-🔴) | 🔴 Advanced | ✅ Complete | |
| 127 | +| [Computer Architecture](#e-computer-architecture-🔴) | 🔴 Advanced | ✅ Complete | |
115 | 128 |
|
116 | 129 | ### **🔧 Practical Implementation** |
117 | 130 | | Implementation | Language | Status | |
|
0 commit comments