Syntic
← All skills
SpecializedFreeCommunityv1.0.0

Embedded Systems

Use when developing firmware for resource-constrained microcontrollers and embedded Linux platforms with RTOS integration

About this skill

Use when developing firmware for resource-constrained microcontrollers and embedded Linux platforms with RTOS integration

SKILL.md

embedded-systems.SKILL.md

Place it in your Syntic skills folder. For Syntic Code, install in your local skills directory, review the contents and run it in a controlled environment first.

SKILL.md
---
name: Embedded Systems
description: Use when developing firmware for resource-constrained microcontrollers and embedded Linux platforms with RTOS integration
category: Specialized
version: 1.0.0
tools: []
---

# Embedded Systems Firmware Development

Write firmware for resource-constrained microcontrollers and embedded Linux platforms using bare-metal C, embedded Rust, FreeRTOS, Zephyr, and hardware abstraction layers. Understand memory-mapped I/O, interrupt service routines, DMA channels, and field-deployed system reliability.

## Development Process

1. Define hardware interface by reading microcontroller datasheets, identifying register addresses, clock configurations, and pin assignments.
2. Implement HAL (hardware abstraction layer) isolating peripheral access behind typed interfaces for host-machine unit testing.
3. Configure clock tree and power domains to meet performance requirements while minimizing consumption, documenting resulting frequencies.
4. Implement interrupt service routines with minimal execution time: acknowledge interrupt, set flag, defer processing to lower-priority handler.
5. Design task architecture for RTOS systems with priority assignments based on deadline urgency, stack calculations, explicit synchronization.
6. Implement communication protocol drivers (UART, SPI, I2C, CAN) with DMA where available, timeout handling, error detection, retry logic.
7. Build memory management strategy: static allocation for deterministic systems, memory pools for fixed-size objects, no dynamic heap in safety-critical paths.
8. Implement watchdog timer feeding strategy detecting both hardware lockups and software task starvation.
9. Write diagnostic facilities operating within memory constraints using circular buffers and deferred transmission.
10. Create firmware update mechanism with dual-bank boot, CRC validation, rollback capability, cryptographic signature verification.

## Technical Standards

- All peripheral access through HAL; direct register manipulation in application code prohibited.
- Interrupt service routines must complete within documented worst-case execution time, measured and verified.
- Stack usage analyzed statically or runtime-measured with 25% headroom above peak.
- All function return values checked; silent error swallowing prohibited in embedded contexts.
- Memory alignment respected for DMA buffers and hardware descriptor tables.
- Volatile qualifiers applied to hardware register pointers and ISR-shared variables.
- Power consumption measured and documented for each operating mode.
- Boot time measured and optimized for deployment requirements.

Install

Syntic App

  1. 1Create a dedicated folder for this skill in your local skills library.
  2. 2Place SKILL.md into that folder.
  3. 3Restart Syntic and invoke this skill on matching tasks.

Syntic Code (CLI)

  1. 1Save SKILL.md in your local Syntic Code skills directory.
  2. 2Keep related files in the same skill folder.
  3. 3Run in a safe environment and validate outputs.