embedded-systems by 404kidwiz/claude-supercode-skills
npx skills add https://github.com/404kidwiz/claude-supercode-skills --skill embedded-systems提供嵌入式软件开发专业知识,专攻实时操作系统(RTOS)、裸机固件和嵌入式 Linux。专注于微控制器(STM32、ESP32)和嵌入式 Linux 系统的安全关键代码、功耗优化和硬件抽象。
What is the hardware capability?
│
├─ **Microcontroller (MCU) - < 1MB RAM**
│ ├─ Hard Real-Time? → **Zephyr / FreeRTOS** (Preemptive scheduler)
│ ├─ Safety Critical? → **SafeRTOS / Rust (Bare Metal)**
│ └─ Simple Loop? → **Bare Metal (Superloop)**
│
└─ **Microprocessor (MPU) - > 64MB RAM**
├─ Complex UI / Networking? → **Embedded Linux (Yocto/Buildroot)**
└─ Hard Real-Time? → **RT-Linux (PREEMPT_RT)** or **Dual Core (Linux + MCU)**
| 语言 | 使用场景 | 建议 |
|---|---|---|
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
| 遗留代码 / 硬件抽象层 |
| 仍占主导地位。使用严格的静态分析(MISRA)。 |
| C++ (C++20) | 复杂逻辑 | 为嵌入式系统使用 noexcept、no-rtti。零成本抽象。 |
| Rust | 新项目 | 强烈推荐。 无需垃圾回收的内存安全。embedded-hal。 |
| MicroPython | 原型开发 | 适合快速测试,不适合生产环境实时应用。 |
危险信号 → 升级给 security-engineer 处理:
strcpy 或无边界缓冲区目标: 通过 I2C 读取传感器数据并打印到控制台。
步骤:
设备树(app.overlay)
&i2c1 {
status = "okay";
bme280@76 {
compatible = "bosch,bme280";
reg = <0x76>;
label = "BME280";
};
};
配置(prj.conf)
CONFIG_I2C=y
CONFIG_SENSOR=y
CONFIG_CBPRINTF_FP_SUPPORT=y
代码(main.c)
#include <zephyr/kernel.h>
#include <zephyr/device.h>
#include <zephyr/drivers/sensor.h>
void main(void) {
const struct device *dev = DEVICE_DT_GET_ANY(bosch_bme280);
while (1) {
sensor_sample_fetch(dev);
struct sensor_value temp;
sensor_channel_get(dev, SENSOR_CHAN_AMBIENT_TEMP, &temp);
printk("Temp: %d.%06d C\n", temp.val1, temp.val2);
k_sleep(K_SECONDS(1));
}
}
使用场景: 在没有操作系统的情况下处理复杂的设备逻辑。
typedef enum { STATE_IDLE, STATE_READING, STATE_SENDING, STATE_ERROR } SystemState;
void loop() {
static SystemState state = STATE_IDLE;
switch(state) {
case STATE_IDLE:
if (timerExpired()) state = STATE_READING;
break;
case STATE_READING:
if (readSensor()) state = STATE_SENDING;
else state = STATE_ERROR;
break;
case STATE_SENDING:
sendData();
state = STATE_IDLE;
break;
// ...
}
}
使用场景: 保持中断服务程序简短。
使用场景: 如果系统冻结,自动复位。
void watchdog_task(void *pvParameters) {
while(1) {
// Only kick if critical flags are set
if (check_system_health()) {
wdt_feed();
}
vTaskDelay(1000);
}
}
每周安装数
92
代码仓库
GitHub 星标数
45
首次出现
2026年1月24日
安全审计
安装于
opencode75
codex70
gemini-cli69
cursor66
claude-code64
github-copilot62
Provides embedded software development expertise specializing in RTOS, bare-metal firmware, and Embedded Linux. Focuses on safety-critical code, power optimization, and hardware abstraction for microcontrollers (STM32, ESP32) and embedded Linux systems.
What is the hardware capability?
│
├─ **Microcontroller (MCU) - < 1MB RAM**
│ ├─ Hard Real-Time? → **Zephyr / FreeRTOS** (Preemptive scheduler)
│ ├─ Safety Critical? → **SafeRTOS / Rust (Bare Metal)**
│ └─ Simple Loop? → **Bare Metal (Superloop)**
│
└─ **Microprocessor (MPU) - > 64MB RAM**
├─ Complex UI / Networking? → **Embedded Linux (Yocto/Buildroot)**
└─ Hard Real-Time? → **RT-Linux (PREEMPT_RT)** or **Dual Core (Linux + MCU)**
| Language | Use Case | Recommendation |
|---|---|---|
| C (C11/C17) | Legacy / HALs | Still dominant. Use strict static analysis (MISRA). |
| C++ (C++20) | Complex Logic | Use noexcept, no-rtti for embedded. Zero-cost abstractions. |
| Rust | New Projects | Highly Recommended. Memory safety without GC. embedded-hal. |
| MicroPython | Prototyping | Good for rapid testing, bad for production real-time. |
Red Flags → Escalate tosecurity-engineer:
strcpy or unbounded buffers in C codeGoal: Read sensor via I2C and print to console.
Steps:
Device Tree (app.overlay)
&i2c1 {
status = "okay";
bme280@76 {
compatible = "bosch,bme280";
reg = <0x76>;
label = "BME280";
};
};
Configuration (prj.conf)
CONFIG_I2C=y
CONFIG_SENSOR=y
CONFIG_CBPRINTF_FP_SUPPORT=y
Code (main.c)
#include <zephyr/kernel.h>
#include <zephyr/device.h>
#include <zephyr/drivers/sensor.h>
void main(void) {
const struct device *dev = DEVICE_DT_GET_ANY(bosch_bme280);
while (1) {
sensor_sample_fetch(dev);
struct sensor_value temp;
sensor_channel_get(dev, SENSOR_CHAN_AMBIENT_TEMP, &temp);
printk("Temp: %d.%06d C\n", temp.val1, temp.val2);
k_sleep(K_SECONDS(1));
}
}
Use case: Handling complex device logic without an OS.
typedef enum { STATE_IDLE, STATE_READING, STATE_SENDING, STATE_ERROR } SystemState;
void loop() {
static SystemState state = STATE_IDLE;
switch(state) {
case STATE_IDLE:
if (timerExpired()) state = STATE_READING;
break;
case STATE_READING:
if (readSensor()) state = STATE_SENDING;
else state = STATE_ERROR;
break;
case STATE_SENDING:
sendData();
state = STATE_IDLE;
break;
// ...
}
}
Use case: Keeping ISRs (Interrupt Service Routines) short.
Use case: Auto-reset if the system freezes.
void watchdog_task(void *pvParameters) {
while(1) {
// Only kick if critical flags are set
if (check_system_health()) {
wdt_feed();
}
vTaskDelay(1000);
}
}
Weekly Installs
92
Repository
GitHub Stars
45
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode75
codex70
gemini-cli69
cursor66
claude-code64
github-copilot62
EnergyKit iOS 开发指南:Swift 6.2 电网电力预测与负载管理
584 周安装