🎯

domain-embedded

🎯Skill

from actionbook/rust-skills

VibeIndex|
What it does

Configures and optimizes Rust development for embedded systems, microcontrollers, and no_std environments with hardware-specific constraints.

πŸ“¦

Part of

actionbook/rust-skills(35 items)

domain-embedded

Installation

Quick InstallInstall with npx
npx skills add ZhangHanDong/rust-skills
CargoRun with Cargo (Rust)
cargo install cowork
git cloneClone repository
git clone https://github.com/ZhangHanDong/rust-skills.git
Add MarketplaceAdd marketplace to Claude Code
/plugin marketplace add ZhangHanDong/rust-skills
πŸ“– Extracted from docs: actionbook/rust-skills
10Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

"Use when developing embedded/no_std Rust. Keywords: embedded, no_std, microcontroller, MCU, ARM, RISC-V, bare metal, firmware, HAL, PAC, RTIC, embassy, interrupt, DMA, peripheral, GPIO, SPI, I2C, UART, embedded-hal, cortex-m, esp32, stm32, nrf, 塌ε…₯式, ε•η‰‡ζœΊ, ε›Ίδ»Ά, 裸机"

Project Context (Auto-Injected)

Target configuration:

!cat .cargo/config.toml 2>/dev/null || echo "No .cargo/config.toml found"

---

# Embedded Domain

> Layer 3: Domain Constraints

Domain Constraints β†’ Design Implications

| Domain Rule | Design Constraint | Rust Implication |

|-------------|-------------------|------------------|

| No heap | Stack allocation | heapless, no Box/Vec |

| No std | Core only | #![no_std] |

| Real-time | Predictable timing | No dynamic alloc |

| Resource limited | Minimal memory | Static buffers |

| Hardware safety | Safe peripheral access | HAL + ownership |

| Interrupt safe | No blocking in ISR | Atomic, critical sections |

---

Critical Constraints

No Dynamic Allocation

```

RULE: Cannot use heap (no allocator)

WHY: Deterministic memory, no OOM

RUST: heapless::Vec, arrays

```

Interrupt Safety

```

RULE: Shared state must be interrupt-safe

WHY: ISR can preempt at any time

RUST: Mutex> + critical section

```

Hardware Ownership

```

RULE: Peripherals must have clear ownership

WHY: Prevent conflicting access

RUST: HAL takes ownership, singletons

```

---

Trace Down ↓

From constraints to design (Layer 2):

```

"Need no_std compatible data structures"

↓ m02-resource: heapless collections

↓ Static sizing: heapless::Vec

"Need interrupt-safe state"

↓ m03-mutability: Mutex>>

↓ m07-concurrency: Critical sections

"Need peripheral ownership"

↓ m01-ownership: Singleton pattern

↓ m12-lifecycle: RAII for hardware

```

---

Layer Stack

| Layer | Examples | Purpose |

|-------|----------|---------|

| PAC | stm32f4, esp32c3 | Register access |

| HAL | stm32f4xx-hal | Hardware abstraction |

| Framework | RTIC, Embassy | Concurrency |

| Traits | embedded-hal | Portable drivers |

Framework Comparison

| Framework | Style | Best For |

|-----------|-------|----------|

| RTIC | Priority-based | Interrupt-driven apps |

| Embassy | Async | Complex state machines |

| Bare metal | Manual | Simple apps |

Key Crates

| Purpose | Crate |

|---------|-------|

| Runtime (ARM) | cortex-m-rt |

| Panic handler | panic-halt, panic-probe |

| Collections | heapless |

| HAL traits | embedded-hal |

| Logging | defmt |

| Flash/debug | probe-run |

Design Patterns

| Pattern | Purpose | Implementation |

|---------|---------|----------------|

| no_std setup | Bare metal | #![no_std] + #![no_main] |

| Entry point | Startup | #[entry] or embassy |

| Static state | ISR access | Mutex>> |

| Fixed buffers | No heap | heapless::Vec |

Code Pattern: Static Peripheral

```rust

#![no_std]

#![no_main]

use cortex_m::interrupt::{self, Mutex};

use core::cell::RefCell;

static LED: Mutex>> = Mutex::new(RefCell::new(None));

#[entry]

fn main() -> ! {

let dp = pac::Peripherals::take().unwrap();

let led = Led::new(dp.GPIOA);

interrupt::free(|cs| {

LED.borrow(cs).replace(Some(led));

});

loop {

interrupt::free(|cs| {

if let Some(led) = LED.borrow(cs).borrow_mut().as_mut() {

led.toggle();

}

});

}

}

```

---

Common Mistakes

| Mistake | Domain Violation | Fix |

|---------|-----------------|-----|

| Using Vec | Heap allocation | heapless::Vec |

| No critical section | Race with ISR | Mutex + interrupt::free |

| Blocking in ISR | Missed interrupts | Defer to main loop |

| Unsafe peripheral | Hardware conflict | HAL ownership |

---

Trace to Layer 1

| Constraint | Layer 2 Pattern | Layer 1 Implementation |

|------------|-----------------|------------------------|

| No heap | Static collections | heapless::Vec |

| ISR safety | Critical sections | Mutex> |

| Hardware ownership | Singleton | take().unwrap() |

| no_std | Core-only | #![no_std], #![no_main] |

---

Related Skills

| When | See |

|------|-----|

| Static memory | m02-resource |

| Interior mutability | m03-mutability |

| Interrupt patterns | m07-concurrency |

| Unsafe for hardware | unsafe-checker |

More from this repository10

πŸͺ
actionbook-rust-skillsπŸͺMarketplace

Comprehensive Rust development assistant with meta-question routing, coding guidelines, version queries, and ecosystem support

🎯
coding-guidelines🎯Skill

Provides comprehensive Rust coding guidelines covering naming conventions, best practices, error handling, memory management, concurrency, and code style recommendations.

🎯
rust-refactor-helper🎯Skill

Performs safe Rust refactoring by analyzing symbol references, dependencies, and potential impacts using Language Server Protocol (LSP) operations.

🎯
m09-domain🎯Skill

Guides domain modeling in Rust by helping identify entities, value objects, aggregates, and their ownership patterns with domain-driven design principles.

🎯
m05-type-driven🎯Skill

Enforces compile-time type safety by preventing invalid states through type-level design techniques like newtypes, type states, and phantom types.

🎯
rust-learner🎯Skill

Retrieves and provides comprehensive Rust and crate information, including versions, features, documentation, and changelogs from authoritative sources.

🎯
m02-resource🎯Skill

Guides developers in selecting the right smart pointer and resource management strategy based on ownership, thread safety, and design constraints.

🎯
m11-ecosystem🎯Skill

Guides Rust developers in selecting, integrating, and managing ecosystem dependencies with best practices and strategic decision-making.

🎯
rust-trait-explorer🎯Skill

Explores Rust trait implementations, revealing which types implement specific traits and their implementation details using LSP.

🎯
rust-call-graph🎯Skill

Generates and visualizes Rust function call graphs using LSP, revealing function relationships and call hierarchies.