mirror of
https://github.com/m3y54m/Embedded-Engineering-Roadmap.git
synced 2026-10-10 08:18:16 +03:00
docs(map): draft the connections between topics
A first set of 196 hand-picked connections, each with a one-line reason, for review by the maintainer.
This commit is contained in:
+210
@@ -258,6 +258,216 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"links": [
|
||||
["C", "Memory Management", "Pointers, the stack and the heap are managed by hand in C"],
|
||||
["C++", "Memory Management", "Ownership, RAII and smart pointers decide who frees memory"],
|
||||
["Rust", "Memory Management", "Ownership and borrowing replace manual memory management"],
|
||||
["Python", "Memory Management", "Garbage collection; MicroPython has to fit in small RAM"],
|
||||
["C", "C++", "C++ builds on C, and both are mixed in one firmware project"],
|
||||
["C", "Compilers / GCC", "The toolchain that turns C code into firmware"],
|
||||
["C", "Linux Kernel", "The kernel and its drivers are written in C"],
|
||||
["C", "GDB", "Source-level debugging of C programs"],
|
||||
["C++", "Design Patterns", "Classic object-oriented patterns are taught in C++"],
|
||||
["C++", "Qt Framework", "Qt is a C++ framework"],
|
||||
["Python", "Bash Scripting", "Both automate tooling, tests and build tasks"],
|
||||
["Python", "SIL / HIL Testing", "Test rigs and HIL benches are often scripted in Python"],
|
||||
["Python", "Edge AI", "Models are usually trained in Python before deployment"],
|
||||
["Rust", "Embedded Security", "Memory safety removes a whole class of vulnerabilities"],
|
||||
["Assembly", "Computer Architecture", "Instructions map directly to registers and the memory model"],
|
||||
["Assembly", "Compilers / GCC", "Reading compiler output and writing startup code"],
|
||||
["Assembly", "Interrupts", "Vector tables and context saving are done in assembly"],
|
||||
|
||||
["Algorithms & Data Structures", "Memory Management", "The data structure you pick decides memory use and allocation"],
|
||||
["Algorithms & Data Structures", "Digital Signal Processing", "Filters and transforms are algorithms with tight time and memory budgets"],
|
||||
["Algorithms & Data Structures", "Problem-Solving Skills & Critical Thinking", "Choosing and breaking down an approach"],
|
||||
["Design Patterns", "State Machines", "The State pattern; many embedded designs are state machines"],
|
||||
["State Machines", "Interrupts", "Events and interrupts drive state transitions"],
|
||||
["State Machines", "RTOS Basics", "RTOS tasks are usually written as event-driven state machines"],
|
||||
["State Machines", "Digital Design", "Finite-state machines are also the core of sequential logic in hardware"],
|
||||
|
||||
["JTAG / SWD", "OpenOCD", "OpenOCD drives JTAG/SWD debug probes"],
|
||||
["JTAG / SWD", "GDB", "GDB reaches the target through a JTAG/SWD probe"],
|
||||
["JTAG / SWD", "Bootloader / DFU", "Flashes the first bootloader and recovers bricked boards"],
|
||||
["OpenOCD", "GDB", "OpenOCD is the GDB server for most microcontrollers"],
|
||||
["GDB", "Compilers / GCC", "GDB reads the debug information the compiler emits"],
|
||||
["GDB", "Problem-Solving Skills & Critical Thinking", "Debugging is structured problem solving"],
|
||||
|
||||
["Agile / SCRUM", "V-Model", "Two common process models; safety projects often combine them"],
|
||||
["Agile / SCRUM", "CI/CD Pipelines", "Short iterations rely on automated builds and tests"],
|
||||
["Agile / SCRUM", "Teamwork & Collaborative Abilities", "Scrum is built around close teamwork"],
|
||||
["Agile / SCRUM", "Organizational & Time Management Skills", "Sprint planning and prioritising work"],
|
||||
["V-Model", "Standards & Certifications", "Certified projects follow V-model verification"],
|
||||
["V-Model", "SIL / HIL Testing", "Integration and system testing on SIL and HIL benches"],
|
||||
["Git", "SVN", "Both are version control systems; Git is the common choice today"],
|
||||
["Git", "CI/CD Pipelines", "Pipelines start from commits and pull requests"],
|
||||
["Git", "Teamwork & Collaborative Abilities", "Branches and code review are how teams share code"],
|
||||
["Communication Skills", "Teamwork & Collaborative Abilities", "Collaboration depends on clear communication"],
|
||||
|
||||
["Compilers / GCC", "Make / CMake", "Build systems drive the compiler and linker"],
|
||||
["Make / CMake", "CI/CD Pipelines", "Pipelines run the same build commands"],
|
||||
["Make / CMake", "Buildroot / Yocto", "Buildroot and Yocto are build systems for whole Linux images"],
|
||||
["Bash Scripting", "CI/CD Pipelines", "Most pipeline steps are shell commands"],
|
||||
["Bash Scripting", "Operating System Fundamentals", "The shell and processes are core OS concepts"],
|
||||
["Docker", "CI/CD Pipelines", "Containers give pipelines a reproducible toolchain"],
|
||||
["Docker", "Buildroot / Yocto", "Yocto builds are commonly run in containers"],
|
||||
|
||||
["TDD & Unit Testing", "CI/CD Pipelines", "Tests run automatically on every change"],
|
||||
["TDD & Unit Testing", "Hardware Simulation / Emulation", "Tests run on a host against simulated hardware"],
|
||||
["SIL / HIL Testing", "Hardware Simulation / Emulation", "SIL runs the firmware against simulated hardware"],
|
||||
["SIL / HIL Testing", "CI/CD Pipelines", "HIL rigs can run as pipeline stages"],
|
||||
["Standards & Certifications", "Embedded Security", "Security standards such as IEC 62443"],
|
||||
["Standards & Certifications", "AUTOSAR", "Automotive software is developed to ISO 26262"],
|
||||
["Standards & Certifications", "PCB Design / EMC", "EMC compliance testing is a certification requirement"],
|
||||
|
||||
["Embedded Security", "Bootloader / DFU", "Secure boot and signed firmware updates"],
|
||||
["Embedded Security", "IoT", "Connected devices are exposed to attacks and need secure updates"],
|
||||
["Embedded Security", "TCP/IP", "TLS runs on top of TCP/IP"],
|
||||
["Embedded GUI", "Qt Framework", "Qt is a common GUI toolkit on embedded Linux"],
|
||||
["Embedded GUI", "SPI", "Small displays are often driven over SPI"],
|
||||
["Embedded GUI", "DMA", "DMA moves frame buffers to the display"],
|
||||
["IoT", "MQTT", "A common messaging protocol for IoT devices"],
|
||||
["IoT", "CoAP", "A lightweight request/response protocol for constrained devices"],
|
||||
["IoT", "Wi-Fi", "A typical uplink for mains-powered devices"],
|
||||
["IoT", "LoRa", "Long-range, low-power links"],
|
||||
["IoT", "NB-IoT", "Cellular connectivity for low-power devices"],
|
||||
["IoT", "Power Management", "Battery-powered nodes need low-power design"],
|
||||
["Edge AI", "Digital Signal Processing", "Features are extracted from sensor signals before inference"],
|
||||
["Edge AI", "Sensors & Actuators", "Models run on sensor data"],
|
||||
["Edge AI", "Power Management", "Inference has to fit a small energy budget"],
|
||||
["Edge AI", "FPGA Development", "FPGAs are used as inference accelerators"],
|
||||
["AUTOSAR", "CAN", "AUTOSAR communication stacks run over CAN"],
|
||||
["AUTOSAR", "Ethernet", "Automotive Ethernet is part of the AUTOSAR stack"],
|
||||
["AUTOSAR", "RTOS Basics", "AUTOSAR OS is an OSEK-based real-time operating system"],
|
||||
|
||||
["Operating System Fundamentals", "RTOS Basics", "Scheduling, tasks and synchronisation carry over"],
|
||||
["Operating System Fundamentals", "Linux Kernel", "Processes, memory and drivers as implemented in Linux"],
|
||||
["Operating System Fundamentals", "Threading / Parallelism", "Threads and scheduling basics"],
|
||||
["Operating System Fundamentals", "Memory Management", "Virtual memory and allocators"],
|
||||
["Operating System Fundamentals", "Computer Architecture", "MMU, privilege levels and caches"],
|
||||
["Linux Kernel", "Device Drivers", "Drivers are kernel modules"],
|
||||
["Linux Kernel", "U-Boot", "U-Boot loads the kernel and the device tree"],
|
||||
["Linux Kernel", "Buildroot / Yocto", "The kernel is configured and built as part of the image"],
|
||||
["Linux Kernel", "Memory Technologies & File Systems", "Flash-friendly file systems and block layers"],
|
||||
["Device Drivers", "I2C", "Linux drivers talk to devices over buses like I2C"],
|
||||
["Device Drivers", "SPI", "Linux drivers talk to devices over buses like SPI"],
|
||||
["Device Drivers", "GPIO", "Pins are exposed to drivers through the GPIO subsystem"],
|
||||
["Device Drivers", "Interrupts", "Drivers handle device interrupts"],
|
||||
["Device Drivers", "USB", "The USB stack needs host and device drivers"],
|
||||
["Device Drivers", "PCIe", "PCIe devices need kernel drivers"],
|
||||
["U-Boot", "Bootloader / DFU", "The same job on Linux boards: initialise hardware and load the OS"],
|
||||
["U-Boot", "Buildroot / Yocto", "Both build and ship the bootloader with the image"],
|
||||
["Threading / Parallelism", "IPC", "Threads and processes exchange data through IPC"],
|
||||
["Threading / Parallelism", "RTOS Basics", "RTOS tasks, mutexes and priorities"],
|
||||
["IPC", "RTOS Basics", "Queues and semaphores are the RTOS form of IPC"],
|
||||
|
||||
["RTOS Basics", "FreeRTOS", "The most common first RTOS"],
|
||||
["RTOS Basics", "Zephyr", "The same scheduling, synchronisation and timing concepts"],
|
||||
["RTOS Basics", "QNX", "The same scheduling, synchronisation and timing concepts"],
|
||||
["RTOS Basics", "µC/OS", "The same scheduling, synchronisation and timing concepts"],
|
||||
["RTOS Basics", "RT-Thread", "The same scheduling, synchronisation and timing concepts"],
|
||||
["RTOS Basics", "Interrupts", "ISRs hand work over to tasks"],
|
||||
["RTOS Basics", "Timers / Counters", "The tick timer and software timers"],
|
||||
["FreeRTOS", "Memory Management", "FreeRTOS offers several heap allocation schemes"],
|
||||
["FreeRTOS", "TCP/IP", "FreeRTOS+TCP is its TCP/IP stack"],
|
||||
["Zephyr", "Bluetooth", "Zephyr ships its own Bluetooth stack"],
|
||||
["Zephyr", "Thread", "Zephyr integrates OpenThread"],
|
||||
["QNX", "IPC", "A microkernel built around message passing"],
|
||||
["QNX", "Standards & Certifications", "Certified for safety-critical use"],
|
||||
|
||||
["GPIO", "Interrupts", "Pin edges raise interrupts"],
|
||||
["GPIO", "PWM", "PWM is a timer-driven GPIO function"],
|
||||
["GPIO", "Principles of Electric Circuits", "Pull-ups, drive strength and current limits"],
|
||||
["GPIO", "Breadboarding", "The first experiment: an LED and a button on a breadboard"],
|
||||
["ADC / DAC", "Sensors & Actuators", "Analog sensors are read through an ADC"],
|
||||
["ADC / DAC", "DMA", "DMA moves samples without using the CPU"],
|
||||
["ADC / DAC", "Digital Signal Processing", "Sampling theory and filtering"],
|
||||
["ADC / DAC", "Timers / Counters", "Timers trigger conversions at a fixed rate"],
|
||||
["Timers / Counters", "PWM", "PWM is generated by timer hardware"],
|
||||
["Timers / Counters", "Interrupts", "Timer events raise interrupts"],
|
||||
["Timers / Counters", "Clock Management", "Timer rates derive from the clock tree"],
|
||||
["Timers / Counters", "Watchdog", "A watchdog is a special timer"],
|
||||
["PWM", "Sensors & Actuators", "Drives motors, LEDs and servos"],
|
||||
["PWM", "Control Theory", "A PID loop outputs a PWM duty cycle"],
|
||||
["PWM", "Oscilloscope", "Duty cycle and frequency are checked on a scope"],
|
||||
["Watchdog", "RTOS Basics", "Tasks must check in; a stuck task triggers a reset"],
|
||||
["Interrupts", "Computer Architecture", "Vector table, priorities and the exception model"],
|
||||
["DMA", "SPI", "High-throughput transfers without CPU load"],
|
||||
["DMA", "UART", "Streaming serial data without CPU load"],
|
||||
["Clock Management", "Power Management", "Clock gating and frequency scaling save power"],
|
||||
["Clock Management", "UART", "Baud rates derive from the clock"],
|
||||
["Clock Management", "Oscilloscope", "Checking oscillator and clock output"],
|
||||
["Power Management", "Interrupts", "Wake-up sources are interrupts"],
|
||||
["Power Management", "Bluetooth", "BLE is designed around duty cycling"],
|
||||
["Power Management", "Hardware Design Basics", "Power supply and battery design"],
|
||||
["Bootloader / DFU", "Memory Technologies & File Systems", "Firmware lives in flash and updates need safe writes"],
|
||||
["Bootloader / DFU", "USB", "The USB DFU class updates firmware"],
|
||||
|
||||
["Memory Technologies & File Systems", "Memory Management", "RAM, flash and EEPROM sizes set the memory budget"],
|
||||
["Memory Technologies & File Systems", "SPI", "SPI flash and SD cards"],
|
||||
["Hardware Simulation / Emulation", "Digital Design", "Logic is verified in simulation before hardware exists"],
|
||||
["Hardware Simulation / Emulation", "FPGA Development", "HDL designs are simulated before synthesis"],
|
||||
["Hardware Simulation / Emulation", "Principles of Electric Circuits", "Circuits can be simulated (SPICE) before they are built"],
|
||||
["Sensors & Actuators", "I2C", "Most digital sensors use I2C"],
|
||||
["Sensors & Actuators", "SPI", "Faster sensors use SPI"],
|
||||
["Sensors & Actuators", "Digital Signal Processing", "Raw readings are filtered and calibrated"],
|
||||
["Sensors & Actuators", "Control Theory", "Closed-loop control reads sensors and drives actuators"],
|
||||
["Digital Signal Processing", "Control Theory", "Filters and controllers share the same math"],
|
||||
["Digital Signal Processing", "Basic Math & Calculus", "Transforms and filters are applied calculus"],
|
||||
["Control Theory", "Basic Math & Calculus", "Differential equations and transfer functions"],
|
||||
|
||||
["UART", "Logic / Protocol Analyzer", "Inspect serial frames and baud rate"],
|
||||
["UART", "USB", "USB-to-UART bridges are everywhere"],
|
||||
["UART", "GSM / LTE", "Modems are controlled with AT commands over UART"],
|
||||
["I2C", "Logic / Protocol Analyzer", "Decode addresses and ACK/NACK"],
|
||||
["I2C", "SPI", "Both are on-board buses; learn when to choose which"],
|
||||
["I2C", "Hardware Design Basics", "Pull-up sizing and bus capacitance"],
|
||||
["SPI", "Logic / Protocol Analyzer", "Decode the clock, chip select and data lines"],
|
||||
["Bluetooth", "Wi-Fi", "Both share the 2.4 GHz band, often on one radio chip"],
|
||||
["Bluetooth", "Matter", "Matter devices are commissioned over Bluetooth LE"],
|
||||
["Bluetooth", "UWB", "UWB is often paired with Bluetooth for secure ranging"],
|
||||
["Wi-Fi", "TCP/IP", "Wi-Fi carries IP traffic"],
|
||||
["Wi-Fi", "Matter", "Matter runs on Wi-Fi and Thread"],
|
||||
["Thread", "Matter", "Matter runs on Wi-Fi and Thread"],
|
||||
["Thread", "Zigbee", "Both are mesh networks on IEEE 802.15.4 radios"],
|
||||
["LoRa", "NB-IoT", "Competing low-power wide-area options"],
|
||||
["Ethernet", "TCP/IP", "Ethernet is the link layer under TCP/IP"],
|
||||
["Ethernet", "EtherCAT", "Industrial protocols that run on Ethernet hardware"],
|
||||
["Ethernet", "Profinet", "Industrial protocols that run on Ethernet hardware"],
|
||||
["USB", "PCIe", "Both are high-speed serial links with host and device roles"],
|
||||
["PCIe", "FPGA Development", "FPGAs often connect to hosts over PCIe"],
|
||||
["Modbus", "UART", "Modbus RTU runs over serial lines such as RS-485"],
|
||||
["Modbus", "TCP/IP", "Modbus TCP runs over TCP/IP"],
|
||||
["EtherCAT", "FPGA Development", "EtherCAT slave controllers are often built in FPGAs"],
|
||||
["GSM / LTE", "LTE-M / 5G", "The same cellular family, newer generations"],
|
||||
["LTE-M / 5G", "NB-IoT", "Both are LTE-based low-power IoT standards"],
|
||||
["MQTT", "TCP/IP", "MQTT runs over TCP"],
|
||||
["MQTT", "CoAP", "Two IoT messaging styles: broker-based and request/response"],
|
||||
["CoAP", "UDP", "CoAP runs over UDP"],
|
||||
["TCP/IP", "UDP", "The two main transport protocols"],
|
||||
["CAN", "LIN", "LIN is the low-cost sub-bus beneath CAN in vehicles"],
|
||||
["CAN", "FlexRay", "FlexRay adds determinism and bandwidth beyond CAN"],
|
||||
["CAN", "Logic / Protocol Analyzer", "Decode frames and arbitration"],
|
||||
["CAN", "Oscilloscope", "Check the differential signal and bus termination"],
|
||||
["MOST", "CAN", "MOST carries media in a vehicle while CAN carries control"],
|
||||
["MOST", "Ethernet", "Automotive Ethernet is replacing MOST"],
|
||||
|
||||
["Basic Math & Calculus", "Principles of Electric Circuits", "Circuit analysis uses algebra and calculus"],
|
||||
["Principles of Electric Circuits", "Electronics Fundamentals", "Components build on circuit laws"],
|
||||
["Principles of Electric Circuits", "Multimeter", "Verify voltages and currents in real circuits"],
|
||||
["Electronics Fundamentals", "Digital Design", "Logic gates are built from transistors"],
|
||||
["Electronics Fundamentals", "Hardware Design Basics", "Choosing components and sizing circuits"],
|
||||
["Electronics Fundamentals", "Oscilloscope", "Observe how signals change over time"],
|
||||
["Digital Design", "Computer Architecture", "CPUs are built from digital logic"],
|
||||
["Digital Design", "FPGA Development", "HDL describes digital logic"],
|
||||
["Multimeter", "Breadboarding", "Continuity and voltage checks on prototypes"],
|
||||
["Multimeter", "Soldering / Rework", "Checking for shorts after soldering"],
|
||||
["Oscilloscope", "Logic / Protocol Analyzer", "Analog view and decoded digital view of the same signals"],
|
||||
["Oscilloscope", "PCB Design / EMC", "Measuring noise and ringing"],
|
||||
["Breadboarding", "Hardware Design Basics", "Prototype first, then design the board"],
|
||||
["Breadboarding", "Soldering / Rework", "From breadboard to soldered prototype"],
|
||||
["Hardware Design Basics", "PCB Design / EMC", "Schematics become board layout"],
|
||||
["PCB Design / EMC", "Soldering / Rework", "Boards must allow assembly and repair"]
|
||||
],
|
||||
"groups": {
|
||||
"Operating Systems": ["osBase", "linux", "rtos"],
|
||||
"Microcontrollers": ["rtos", "mcu"],
|
||||
|
||||
Reference in New Issue
Block a user