diff --git a/site/map.json b/site/map.json index b98a97c..51a8281 100644 --- a/site/map.json +++ b/site/map.json @@ -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"],