Embedded Systems Fundamentals
An embedded system is a computer built into a larger product to sense inputs, control hardware, communicate, or perform another dedicated function. Its software and electronics are designed together under timing, memory, power, cost, and reliability constraints.
itComputer architecture and hardware | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Intro
Embedded Systems Fundamentals
An embedded system is a computer that forms an integral part of a larger system. It reads the physical world through inputs, computes a response, and changes the world through outputs. A thermostat, motor drive, keyboard, medical sensor, and network router can all contain embedded systems. The computer is present to perform the product's function rather than to serve as a general-purpose workstation.
Most small embedded systems center on a microcontroller unit, or MCU. An MCU combines a processor core, program memory, working memory, and peripheral controllers in one integrated circuit. The processor executes instructions. Flash memory retains firmware without power. Static random-access memory, or SRAM, holds stacks, variables, and buffers while the system runs. Peripherals connect the processor to timers, analog signals, digital pins, and communication buses.
This integration changes engineering priorities. A desktop program can assume an operating system, abundant memory, and replaceable hardware. Firmware often runs from reset with no process loader, no virtual memory, and a fixed hardware design. It may have kilobytes rather than gigabytes of memory. It may need to react before a deadline, sleep between events, survive unexpected resets, and remain serviceable for years.
The control path
A useful mental model is a repeating control path:
physical event → sensor or input → peripheral → firmware → peripheral → actuator or output
↑ ↓
interrupt stored state
A peripheral translates between the processor's digital execution and an external function. A general-purpose input/output pin can read a switch or drive an indicator. An analog-to-digital converter samples a voltage. A timer measures elapsed time or produces pulse-width modulation. A UART, SPI controller, or I²C controller exchanges data with another device.
Peripherals commonly expose control and status registers at memory addresses. Firmware reads and writes those memory-mapped registers using normal load and store operations. The device data sheet defines each register, bit field, electrical limit, and timing requirement. A hardware abstraction layer or device driver can wrap those details, but it cannot remove the underlying hardware contract.
The processor can poll a status register until an event occurs. Polling keeps control flow visible but consumes processor time while nothing changes. An interrupt lets hardware request attention. The processor pauses ordinary execution, saves enough context to resume later, and enters an interrupt service routine. The routine should capture or acknowledge the urgent event and defer longer work when possible. A long routine delays other interrupts and makes response time harder to bound.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://csrc.nist.gov/glossary/term/embedded_computer
Supports
- Definition of an embedded computer as an integral part of a larger system
- Novice description, intro opening, reference path, narration, and infographic source material
- https://developer.arm.com/compute-ip/cortex-m4
Supports
- Cortex-M interrupt controller, memory protection, low-power, instruction, and embedded processor examples
- MCU, interrupt, timing, power, quiz, and reference claims
- https://developer.arm.com/community/arm-community-blogs/b/architectures-and-processors-blog/posts/navigating-the-cortex-maze
Supports
- ARM1 first running code on 1985-04-26
- Armv7 application, real-time, and microcontroller profile milestone
- 1985 and 2004 timeline events
- https://newsroom.arm.com/blog/40-year-anniversary-of-arm-architecture
Supports
- ARM1 completion in 1985 and early Arm architecture context
- https://timeline.intel.com/1971/the-first-programmable-microprocessor%3A-the-4004
Supports
- Intel 4004 announcement date and programmable microprocessor role
- 1971 timeline event
- https://www.computerhistory.org/siliconengine/general-purpose-microcontroller-family-is-announced/
Supports
- TMS1000 general-purpose MCU announcement and integration of processor, ROM, RAM, and I/O
- MCU definition, quiz question 1, and 1974 timeline event
- https://www.freertos.org/Documentation/02-Kernel/02-Kernel-features/00-Developer-docs
Supports
- FreeRTOS tasks, queues, synchronization, timers, memory, and stack-protection documentation path
- RTOS, memory, watchdog, quiz, reference, and narration claims
- https://freertos.org/Documentation/02-Kernel/02-Kernel-features/01-Tasks-and-co-routines/04-Task-scheduling
Supports
- Default fixed-priority preemptive scheduling and equal-priority round-robin time slicing
- Intro, slides, cheatsheet, quiz, links, and narration scheduling claims
- https://www.freertos.org/Documentation/02-Kernel/02-Kernel-features/01-Tasks-and-co-routines/03-Task-priorities
Supports
- Highest-priority ready-task behavior and task priority model
- https://www.freertos.org/Documentation/02-Kernel/02-Kernel-features/02-Queues-mutexes-and-semaphores/01-Queues
Supports
- Queue storage, blocking, FIFO communication, and task-versus-ISR API context
- Buffer, ownership, ISR-to-task, quiz, and reference claims
- https://freertos.org/Documentation/04-Roadmap-and-release-note/02-Release-notes/00-Release-history
Supports
- Documented FreeRTOS releases beginning in 2003 and 2004
- https://aws.amazon.com/blogs/opensource/announcing-freertos-kernel-v10/
Supports
- FreeRTOS creation in 2003
- FreeRTOS kernel version 10 release under the MIT license in 2017
- 2003 and 2017 timeline events
- https://aws.amazon.com/blogs/aws/new-freertos-long-term-support-to-provide-years-of-feature-stability
Supports
- First FreeRTOS Long Term Support release and its stability and maintenance purpose
- 2020 timeline event
- https://docs.zephyrproject.org/latest/kernel/services/
Supports
- Zephyr scheduling, interrupts, synchronization, data passing, memory, and timing services
- RTOS architecture, concurrency, timing, quiz, and reference claims
- https://docs.zephyrproject.org/latest/build/dts/intro-scope-purpose.html
Supports
- Devicetree as hardware and configuration description and generation of C definitions
- Board-support separation, reference-link rationale, and narration source material
- https://docs.zephyrproject.org/latest/build/dts/index.html
Supports
- Devicetree hardware, driver, GPIO, timer, DMA, bus, and flash description roles
- Peripheral and DMA examples in the intro, slides, cheatsheet, and quiz
- https://docs.zephyrproject.org/latest/build/cmake/index.html
Supports
- Zephyr configuration, generated devicetree header, and build phases
- Cross-build, linking, quiz, and reference claims
- https://www.linuxfoundation.org/press/press-release/the-linux-foundation-announces-project-to-build-real-time-operating-system-for-internet-of-things-devices
Supports
- Zephyr Project announcement on 2016-02-17 and its collaborative RTOS purpose
- 2016 timeline event
- https://riscv.org/about/
Supports
- RISC-V project beginning in May 2010 and open ISA ecosystem
- Architecture comparison, reference rationale, and 2010 timeline event
- https://riscv.org/blog/happy-10th-birthday-risc-v/
Supports
- RISC-V official birthday of 2010-05-18
- Exact date for the 2010 timeline event
- https://doc.rust-lang.org/stable/embedded-book/
Supports
- Bare-metal cross-compilation, memory-mapped peripherals, interrupts, interfaces, and mixed-language development path
- Build-chain, reference rationale, and quiz claims
- https://github.com/sindresorhus/awesome
Supports
- Required starting point for awesome-list discovery
- Discovery of embedded language and security lists and related hardware topics
- https://github.com/xor-gate/awesome-embedded-systems
Supports
- Discovery of OpenOCD and KiCad as embedded-system ecosystem tools
- https://github.com/nhivp/Awesome-Embedded
Supports
- Discovery of PlatformIO and Tock as embedded development ecosystem projects
- https://openocd.org/doc/html/index.html
Supports
- OpenOCD debug adapter, target setup, flash programming, GDB, JTAG, and boundary-scan documentation
- Awesome-link rationale and build-to-target ecosystem placement
- https://docs.kicad.org/8.0/en/getting_started_in_kicad/getting_started_in_kicad.html
Supports
- KiCad schematic, PCB, fabrication-output, library, and inspection workflow
- Awesome-link rationale and custom-board development claims
- https://docs.platformio.org/en/latest/what-is-platformio.html
Supports
- PlatformIO cross-platform build, dependency, upload, debug, test, and analysis workflow
- Awesome-link rationale and landscape placement
- https://tockos.org/documentation/
Supports
- Tock getting-started, architecture, system-call, kernel, and application documentation
- Awesome-link rationale and RTOS protection comparison
- https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html
Supports
- STM32 Arm Cortex-M portfolio, memory, real-time, DSP, low-power, connectivity, tools, and software
- MCU anatomy, quiz, reference rationale, and STM32 landscape placement
- https://www.microchip.com/en-us/products/microcontrollers/8-bit-mcus
Supports
- PIC and AVR MCU memory, peripheral, power, tool, prototyping, and longevity positioning
- PIC and AVR landscape placement
- https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/mcx-arm-cortex-m%3AMCX-MCUS
Supports
- NXP MCX Arm Cortex-M general-purpose MCU portfolio and system-design scope
- MCX landscape placement
- https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus%3AIMX-RT-SERIES
Supports
- Higher-performance real-time MCU choice and MCUXpresso ecosystem
- MCU-versus-application-processor boundary context
- https://www.ti.com/product-category/microcontrollers-processors/mcus/general-purpose/overview.html
Supports
- TI general-purpose MCU configuration, power estimation, evaluation, and programming ecosystem
- MSPM0 landscape placement
- https://www.renesas.com/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus
Supports
- RA Arm Cortex-M performance, low-power, security, connectivity, and Flexible Software Package
- Renesas RA landscape placement
- https://www.infineon.com/products/microcontroller/32-bit-psoc-arm-cortex
Supports
- PSoC Arm Cortex-M programmable analog, digital, touch, control, wireless, and tool integration
- PSoC landscape placement
- https://www.nordicsemi.com/Products/nRF54L15
Supports
- nRF54L low-power multiprotocol wireless system-on-chip and compatible development ecosystem
- nRF54L landscape placement
- https://www.espressif.com/en/products/socs/esp32-s3
Supports
- ESP32-S3 Wi-Fi and Bluetooth Low Energy system-on-chip identity
- ESP32-S3 landscape placement
- https://documentation.espressif.com/esp32-s3_datasheet_en.pdf
Supports
- ESP32-S3 processor, memory, radio, peripheral, and security implementation details
- https://www.silabs.com/wireless/technology
Supports
- EFR32 wireless protocols, low-power states, integrated peripherals, and hardware security
- Wireless Gecko landscape placement
- https://www.raspberrypi.com/documentation/microcontrollers/microcontroller-chips.html
Supports
- RP2040 and RP2350 cores, SRAM, flash arrangement, buses, DMA, GPIO, programming, and security
- MCU anatomy, memory, DMA, quiz, reference rationale, and RP2350 landscape placement
- https://www.raspberrypi.com/products/rp2350/
Supports
- RP2350 Arm and RISC-V core choice, SRAM, PIO, interfaces, security, and device variants
- RP2350 landscape placement
- https://www.freertos.org/
Supports
- FreeRTOS kernel and embedded software ecosystem homepage
- FreeRTOS landscape placement
- https://www.zephyrproject.org/
Supports
- Zephyr RTOS project and ecosystem homepage
- Zephyr landscape placement
- https://platformio.org/
Supports
- PlatformIO product homepage and development environment role
- PlatformIO landscape URL and licensing placement
- https://www.iar.com/embedded-development-tools/iar-embedded-workbench
Supports
- IAR compiler, linker, debugger, analysis, architecture support, and functional-safety toolchain
- IAR Embedded Workbench landscape placement
- https://www.segger.com/products/debug-probes/j-link/
Supports
- J-Link debug probes, CPU and IDE support, JTAG, SWD, flash, and host debugger integration
- J-Link landscape placement and build-to-target chain
