STM32 firmware
STM32 firmware 表示项目把 STM32 系 MCU 作为正式固件目标来维护,并围绕工具链、.ioc 硬件配置、刷写后端、板级职责和与其他 MCU/外设的分工建立了稳定契约。这里的主语不是“用了 STM32”,而是 STM32 固件在系统中的角色。
- 硬件
目录
Definition
STM32 firmware 表示项目把 STM32 系 MCU 作为正式固件目标来维护,并围绕工具链、.ioc 硬件配置、刷写后端、板级职责和与其他 MCU/外设的分工建立了稳定契约。这里的主语不是“用了 STM32”,而是 STM32 固件在系统中的角色。
它通常会和 Embedded Rust、Async embedded、USB PD 一起出现,但不替代这些 Topic:STM32 firmware 解释 STM32 侧固件职责、硬件配置真相源和刷写/bring-up 习惯,其他 Topic 解释运行时、协议或器件语义(projects/loadlynx.md、projects/pd-sink-stm32g431cbu6-rs.md、projects/sk150c-kit.md)。
When to use
当 README、project snapshot、Cargo.toml、.ioc 文件、刷写配置或目录结构明确表明 STM32 是当前系统的正式 MCU 目标时使用。若 STM32 只是历史目录、单次实验或外围工具引用,则不应直接命中。
如果一个改动会影响 STM32 侧运行时、外设配置、.ioc/CubeMX 真相源、刷写参数、双 MCU 分工、保护逻辑、显示/PD 等板级职责,就应该命中 STM32 firmware。若问题主要在协议或器件层,则应再借助 USB PD、Display driver 等相邻 Topic。
Habits / defaults
- Many repos keep
.iocfiles next to Rust to preserve hardware configuration provenance (projects/sk150c-kit.md,projects/pd-sink-stm32g431cbu6-rs.md) - Tooling/automation often includes Make/Just wrappers and agent tooling (
projects/loadlynx.md) - Firmware repos are commonly “device-product” shaped (docs + models + scripts alongside code) (
projects/ups120.md) .ioc或同类硬件配置文件应被视为真相源之一,而不是多余生成物;它们记录了 GPIO/外设分配和板级约束,后续不能只靠 Rust 代码反推。- 刷写后端、probe 参数和工具封装同样属于主题知识。
probe-rs、目标芯片名、速度、reset 策略若不写清,STM32 bring-up 很容易变成靠个人记忆。 - 在分体式设备里,STM32 常承担快速闭环、保护或硬实时路径;Topic 回答里要把它与 ESP32/Web/UI 等较慢平面分开(
projects/loadlynx.md)。 STM32 firmware往往是“device-product” 形仓库的一部分,docs/models/scripts 与代码一起决定系统真相;不能只盯src/。- 回答此 Topic 时,应先写 STM32 负责哪条物理职责链,再写 runtime/tooling。否则 MCU 标签会过宽,失去指导性。
Reference implementations
projects/loadlynx.md:最适合说明 STM32 在双 MCU 系统里承担快速闭环与保护职责。projects/pd-sink-stm32g431cbu6-rs.md:适合说明.ioc、probe-rs 参数和 USB PD/显示/保护如何共同定义 STM32 固件边界。projects/sk150c-kit.md:适合补充开发指南、模型和脚本一并构成设备固件知识面的那一面。projects/stm32g4-flash-programmer.md:适合说明 STM32 附属刷写工具如何与固件主题相邻但不等同。
Failure modes
- 只因为用了 STM32 crate 或板子名就打
STM32 firmware,却没有当前 MCU 目标、刷写或职责证据,会让 Topic 失去判别力。 - 把
STM32 firmware当成整个仓库的总括标签,忽略Embedded Rust、Async embedded、USB PD等相邻 Topic,会让后续 Agent 无法判断真正该看的是 MCU 运行时、协议还是器件层。 - 不写
.ioc/probe 参数/目标芯片信息,会让最常见的 bring-up 和刷写问题完全脱离知识库。 - 在双 MCU 系统里不写分工,也会让维护者在错误的控制面上改动核心逻辑。
Evidence index
projects/display-ambient-light-board-rs.mdprojects/loadlynx.mdprojects/pd-sink-stm32g431cbu6-rs.mdprojects/sk150c-kit.mdprojects/stm32g4-flash-programmer.mdprojects/ups120.mdskills/style-playbook/references/data/topics/stm32-firmware.json
相关内容
display-ambient-light-board-rs
项目实践Rust firmware/support crate for an ambient-light controller board, with a plan doc and examples. Evidence: README.md, Cargo.toml, PLAN.md.
LoadLynx
项目实践LoadLynx 是 STM32G431 + ESP32-S3 便携式电子负载。README.md 明确采用分体式架构:STM32G431 执行快速电流/功率闭环与保护,ESP32-S3 负责 UI/Wi-Fi/OTA/记录/标定及上位机桥接。这是典型 device mono-repo,不能只从一个 firmware 目录理解。
PowerVista PD Sink Firmware
项目实践PowerVista PD Sink Firmware 是 STM32G431CBU6 上的多功能实时电源监控与 USB PD sink 固件。README.md 的项目名是 PowerVista,功能清单包括电压/电流/功率实时显示、PPS request、保护策略、重力感应旋转和配置存储;catalog slug pd-sink-stm32g431cbu6-rs 只是仓库 ID,不应作为人类标题。
sk150c-kit
项目实践Rust firmware project for controlling an adjustable power supply module (STM32G431CBU6), with developer guides (CN/EN), models, and scripts. Evidence: README.md, Cargo.toml, DEVELOPER_GUIDE.md.
stm32g4-flash-programmer
项目实践Tooling repo for programming/flashing STM32G4 devices; includes multiple Rust crates (firmware/host/protocol) plus examples and scripts. Evidence: README.md, firmware/Cargo.toml, host-tool/Cargo.toml, protocol/Cargo.
ups120
项目实践Rust embedded firmware + libraries for an “UPS120” device, with supporting docs, scripts, and structured submodules for chip drivers/components. Evidence: README.md, firmware/, libs/, rust-toolchain.toml.