Agent skill

Stm32 Baremetal

by mohitmishra786 in mohitmishra786/low-level-dev-skills

STM32 bare-metal skill for CMSIS-only MCU projects. An agent skill from mohitmishra786/low-level-dev-skills.

MITAuto-check passedDevelopment

Install Stm32 Baremetal

skills CLI
$ npx skills add mohitmishra786/low-level-dev-skills --skill stm32-baremetal -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mohitmishra786/low-level-dev-skills stm32-baremetal --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mohitmishra786/low-level-dev-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/baremetal/stm32-baremetal .claude/skills/stm32-baremetal && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
stm32-baremetal
GitHub stars
252
Token cost
~1.1k tokens
SKILL.md length
302 words
Files
1
Skills in repo
138
Repo updated
First seen
Licence
MIT

At a glance

STM32 bare-metal skill for CMSIS-only MCU projects. An agent skill from mohitmishra786/low-level-dev-skills.

  • Works in 7 steps: Minimal project layout → Clock configuration (RCC) → Enable peripheral clock before MMIO → …
  • Scaffolding STM32 firmware without HAL
  • SKILL.md covers Purpose, When to Use, Workflow and Common Problems, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Stm32 Baremetal is an agent skill from mohitmishra786/low-level-dev-skills. STM32 bare-metal skill for CMSIS-only MCU projects. Use when scaffolding STM32 firmware without HAL, configuring clocks/RCC, using CMSIS headers, or building with arm-none-eabi-gcc. Activates on queries about STM32 bare metal, CMSIS without HAL, STM32F4/H7 bring-up, or minimal Makefile CMake for Cortex-M.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Project scaffolding. It works with C++. The repository describes itself as: A curated suite of AI agent skills for systems and low-level programming with C/C++, Rust, and Zig toolchains, covering compilers, debuggers, profilers, build systems…. The licence is MIT.

When your agent uses it

  • Scaffolding STM32 firmware without HAL
  • Configuring clocks/RCC
  • Using CMSIS headers
  • Building with arm-none-eabi-gcc

Example prompts

  • “/stm32-baremetal”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Minimal project layout
  2. Clock configuration (RCC)
  3. Enable peripheral clock before MMIO
  4. Build flags (arm-none-eabi-gcc)
  5. Flash map (typical F4)
  6. QEMU note
  7. Agent usage

What it can do on your machine

Read from SKILL.md and the folder at commit bdc5847. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are c and makefile).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • qemu.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Stm32 Baremetal loads about 1.1k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 302 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~81
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mohitmishra786/low-level-dev-skills at commit bdc5847, republished under its MIT licence (© mohitmishra786). 302 words, ~1,093 tokens.

Download SKILL.mdSave it as .claude/skills/stm32-baremetal/SKILL.md (or your agent's skills folder).
name
stm32-baremetal
description
STM32 bare-metal skill for CMSIS-only MCU projects. Use when scaffolding STM32 firmware without HAL, configuring clocks/RCC, using CMSIS headers, or building with arm-none-eabi-gcc. Activates on queries about STM32 bare metal, CMSIS without HAL, STM32F4/H7 bring-up, or minimal Makefile CMake for Cortex-M.

STM32 Bare-Metal (CMSIS, No HAL)

Purpose

Guide agents through a minimal STM32 bare-metal project using CMSIS device headers and startup code only — no STM32 HAL — covering clock setup, linker script integration, peripheral register access, and a reproducible build layout for STM32F/G/H/L families.

When to Use

  • Starting STM32 firmware without Cube HAL dependency
  • Porting vendor examples to register-level drivers
  • Integrating with skills/baremetal/baremetal-startup and skills/embedded/linker-scripts
  • Debugging clock or flash placement issues on STM32
  • Teaching register-level STM32 before RTOS or Zephyr

Workflow

1. Minimal project layout
stm32-bare/
├── startup_stm32f407xx.s   # vector table + Reset_Handler
├── system_stm32f4xx.c      # SystemInit(), SystemCoreClockUpdate()
├── stm32f407xx.h           # CMSIS (from ST pack or copy)
├── linker.ld               # FLASH/RAM regions
├── main.c
└── Makefile

Use CMSIS-Core (core_cm4.h) and device header from ST CMSIS pack or open-source packs (e.g. stm32-cmsis-device-f4).

2. Clock configuration (RCC)

STM32 requires explicit HSE/HSI and PLL setup before high-speed peripherals:

c
/* system_stm32f4xx.c — simplified PLL from 8 MHz HSE */
void SystemInit(void)
{
    RCC->CR |= RCC_CR_HSEON;
    while (!(RCC->CR & RCC_CR_HSERDY)) {}

    RCC->PLLCFGR = RCC_PLLCFGR_PLLSRC_HSE | (8 << 0) | (336 << 6) | (0 << 16) | (7 << 24);
    RCC->CFGR   |= RCC_CFGR_PPRE1_DIV2 | RCC_CFGR_PPRE2_DIV1 | RCC_CFGR_HPRE_DIV1;
    RCC->CR     |= RCC_CR_PLLON;
    while (!(RCC->CR & RCC_CR_PLLRDY)) {}

    FLASH->ACR = FLASH_ACR_LATENCY_5WS;
    RCC->CFGR  |= RCC_CFGR_SW_PLL;
    while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL) {}

    SystemCoreClockUpdate();
}

Always match FLASH_ACR wait states to voltage scale and SYSCLK per reference manual table.

3. Enable peripheral clock before MMIO
c
#define RCC_AHB1ENR_GPIOAEN (1U << 0)

static inline void gpioa_clock_enable(void)
{
    RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
    (void)RCC->AHB1ENR; /* AHB read-after-write — required on STM32 */
}
4. Build flags (arm-none-eabi-gcc)
makefile
MCU      = -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard
CFLAGS   = $(MCU) -Wall -Wextra -ffunction-sections -fdata-sections -g3
LDFLAGS  = $(MCU) -T linker.ld -Wl,--gc-sections -specs=nano.specs -lc -lm -lnosys
5. Flash map (typical F4)
RegionAddressNotes
Flash0x08000000Vector table at boot
SRAM10x20000000Stack, heap, .data/.bss
CCM0x10000000F4 only — not DMA-accessible from all masters

Bootloader apps often link at 0x08010000 and set SCB->VTOR = 0x08010000 on entry.

6. QEMU note

QEMU STM32 machines (stm32vldiscovery, netduinoplus2, etc.) use different MCUs than F407 and omit GPIO/DMA/I2C per QEMU STM32 docs. Use skills/qemu/qemu-embedded-simulation for simulation; validate F4 firmware on hardware.

7. Agent usage
/stm32-baremetal Scaffold CMSIS-only STM32F407 project with USART2 printf

Common Problems

SymptomCauseFix
Hang in SystemInitHSE not populated / wrong PLLUse HSI for bring-up; verify crystal
Peripheral deadRCC clock gate offEnable AHB/APB bit; read-back RCC
HardFault on bootStack in wrong region / VTORCheck _estack in linker.ld
Wrong baud rateSystemCoreClock staleCall SystemCoreClockUpdate() after PLL
DMA fails from CCMCCM not on AHB matrix pathPlace DMA buffers in SRAM1
  • skills/baremetal/baremetal-startup — vector table and .data/.bss
  • skills/baremetal/mmio-and-bit-manipulation — register access patterns
  • skills/baremetal/bootloaders-embedded — app offset and VTOR relocation
  • skills/embedded/linker-scripts — FLASH/RAM MEMORY blocks
  • skills/embedded/openocd-jtag — flash and GDB via ST-Link

© mohitmishra786, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/baremetal/stm32-baremetal of mohitmishra786/low-level-dev-skills.

Open the folder on GitHubat commit bdc5847

Compare with similar skills

Stm32 Baremetal next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Stm32 Baremetal compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Stm32 Baremetal this skillmohitmishra786/low-level-dev-skills252—~1.1kAutomated safety check: PassMIT
Add Ophw-native-sys/pypto127—~2kAutomated safety check: PassCustom licence
Setup Game Mod Devclshortfuse/renodx4.5k—~4.6kAutomated safety check: PassMIT
Simulink Configure Model For Code Generationmatlab/simulink-agentic-toolkit1.2k—~5.4kAutomated safety check: PassCustom licence
Tilelang Ascend Tile APItile-ai/tilelang-ascend403—~1.5kAutomated safety check: PassMIT
Matlab Generate Codematlab/matlab-agentic-toolkit1.1k—~4.2kAutomated safety check: PassCustom licence

Similar skills

  • Add Op

    hw-native-sys/pypto

    Add new operator definitions to PyPTO across all layers (C++, Python IR, Python DSL, tests, codegen, docs).

    127 GitHub stars~2k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Setup Game Mod Dev

    clshortfuse/renodx

    RenoDX workflow for setting up or resuming game mod development with Clang debug builds, DevKit, MCP bridge, ReShade game-folder links, live shader paths, per-game addon scaffolds, metadata, shader…

    4.5k GitHub stars~4.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Simulink Configure Model For Code Generation

    matlab/simulink-agentic-toolkit

    Configure Simulink models for Embedded Coder (ERT), Simulink Coder (GRT rapid-prototyping), or AUTOSAR code generation.

    1.2k GitHub stars~5.4k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Tilelang Ascend Tile API

    tile-ai/tilelang-ascend

    TileLang-Ascend 新增 Ascend 专属 T.tile.xxx 小 API 的端到端开发流程。用户要求新增、封装、暴露、实现或测试 ascendtile.py 中的 T.tile API / Ascend tile primitive 时必须使用本 skill,尤其适用于需要同时打通 Python 前端、C++ lowering/codegen、Ascend C…

    403 GitHub stars~1.5k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Matlab Generate Code

    matlab/matlab-agentic-toolkit

    Generate, verify, refine, and accelerate C/C++ or CUDA code from MATLAB with MATLAB Coder, Embedded Coder, GPU Coder, or MATLAB Test.

    1.1k GitHub stars~4.2k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Build Nitro Modules

    margelo/react-native-skills

    Builds and designs React Native Nitro Modules with Nitrogen, HybridObject TypeScript specs, Nitro View components, generated native implementations, zero-copy and native-state APIs, Swift/Kotlin/C++…

    175 GitHub stars~9.9k tokensUpdated 1 mo ago
    MobileAuto-check passed

More from mohitmishra786/low-level-dev-skills

All 138 skills in this repo
  • ARM and AArch64 Assembly

    mohitmishra786/low-level-dev-skills

    Guides reading and writing AArch64 and ARM Thumb assembly: compiler output, inline asm, registers, the AAPCS calling convention and NEON or SVE basics.

    252 GitHub stars~1.9k tokensUpdated 3 mo ago
    Auto-check passed
  • RISC-V Assembly Guide

    mohitmishra786/low-level-dev-skills

    Reference for RISC-V assembly on RV32 and RV64: register names and calling convention, extension naming, GCC and Clang inline asm, and QEMU with GDB debugging.

    252 GitHub stars~1.8k tokensUpdated 3 mo ago
    Auto-check passed
  • x86-64 Assembly Reference

    mohitmishra786/low-level-dev-skills

    Explains x86-64 registers, the System V AMD64 calling convention, and how to read compiler-generated or inline assembly.

    252 GitHub stars~1.5k tokensUpdated 3 mo ago
    Auto-check passed
  • Bazel for C and C++

    mohitmishra786/low-level-dev-skills

    Guides your agent through Bazel for C/C++ projects: BUILD files, Bzlmod dependencies, toolchain registration, remote execution, dependency queries and sandbox debugging.

    252 GitHub stars~1.5k tokensUpdated 3 mo ago
    Auto-check passed
  • Binary Hardening

    mohitmishra786/low-level-dev-skills

    Binary hardening skill for security-hardened C/C++ builds. An agent skill from mohitmishra786/low-level-dev-skills.

    252 GitHub stars~2k tokensUpdated 3 mo ago
    Auto-check passed
  • Binutils

    mohitmishra786/low-level-dev-skills

    GNU binutils skill for binary manipulation and analysis. An agent skill from mohitmishra786/low-level-dev-skills.

    252 GitHub stars~1.2k tokensUpdated 3 mo ago
    Auto-check passed

Works with

Categories

Questions about Stm32 Baremetal

What does Stm32 Baremetal do?

STM32 bare-metal skill for CMSIS-only MCU projects. An agent skill from mohitmishra786/low-level-dev-skills. Stm32 Baremetal is an agent skill from mohitmishra786/low-level-dev-skills. STM32 bare-metal skill for CMSIS-only MCU projects.

When should I use Stm32 Baremetal?

Stm32 Baremetal fits situations like: scaffolding STM32 firmware without HAL; configuring clocks/RCC; using CMSIS headers; building with arm-none-eabi-gcc.

How do I install Stm32 Baremetal in Claude Code?

Run `npx skills add mohitmishra786/low-level-dev-skills --skill stm32-baremetal -a claude-code`. Or copy the skill folder (skills/baremetal/stm32-baremetal in mohitmishra786/low-level-dev-skills) into .claude/skills/stm32-baremetal in your project. Claude Code loads it when a task matches its description.

How do I install Stm32 Baremetal in Codex?

Run `npx skills add mohitmishra786/low-level-dev-skills --skill stm32-baremetal -a codex`. Or copy the skill folder (skills/baremetal/stm32-baremetal in mohitmishra786/low-level-dev-skills) into .agents/skills/stm32-baremetal in your project. Codex loads it when a task matches its description.

Can I use Stm32 Baremetal in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mohitmishra786/low-level-dev-skills --skill stm32-baremetal -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/stm32-baremetal, .gemini/skills/stm32-baremetal, .github/skills/stm32-baremetal and .opencode/skills/stm32-baremetal in your project.

What does Stm32 Baremetal need to run?

SKILL.md names no scripts, command-line tools or credentials: Stm32 Baremetal is instructions for the agent only.

Does Stm32 Baremetal access the network?

SKILL.md names 1 domain. As links in the text: qemu.org. This is read from the text; nothing was executed.

Is Stm32 Baremetal safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Stm32 Baremetal use?

Stm32 Baremetal is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Stm32 Baremetal use?

About 1.1k tokens (SKILL.md is roughly 4.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Stm32 Baremetal?

Skills that share tags, products or a category with Stm32 Baremetal: Add Op (hw-native-sys/pypto, 127 stars), Setup Game Mod Dev (clshortfuse/renodx, 4.5k stars), Simulink Configure Model For Code Generation (matlab/simulink-agentic-toolkit, 1.2k stars) and Tilelang Ascend Tile API (tile-ai/tilelang-ascend, 403 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Stm32 Baremetal?

mohitmishra786 (a GitHub user) maintains it in mohitmishra786/low-level-dev-skills, which has 252 GitHub stars. The repository holds 138 skills in this directory. The repository was last updated on June 27, 2026.

Source: mohitmishra786/low-level-dev-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.