stm32-freertos-developer
STM32とFreeRTOSを用いた組み込み開発において、タスク管理から周辺機器統合、メモリ最適化、低消費電力化まで幅広く支援するSkill。
📜 元の英語説明(参考)
STM32 + FreeRTOS 嵌入式开发专家。支持 Cortex-M 全系列,原生 FreeRTOS v10+ 和 CMSIS-RTOS v2 API。用于创建任务/队列/信号量、集成标准库 + HAL 外设、内存优化、低功耗 Tickless 模式、STM32CubeMX 配置、调试分析(SEGGER SystemView / Percep TRACEalyzer)。
🇯🇵 日本人クリエイター向け解説
STM32とFreeRTOSを用いた組み込み開発において、タスク管理から周辺機器統合、メモリ最適化、低消費電力化まで幅広く支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o stm32-freertos-developer.zip https://jpskill.com/download/6582.zip && unzip -o stm32-freertos-developer.zip && rm stm32-freertos-developer.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6582.zip -OutFile "$d\stm32-freertos-developer.zip"; Expand-Archive "$d\stm32-freertos-developer.zip" -DestinationPath $d -Force; ri "$d\stm32-freertos-developer.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
stm32-freertos-developer.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
stm32-freertos-developerフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[Skill 名] stm32-freertos-developer
STM32 + FreeRTOS 組み込み開発エキスパート
AI 使用ルール
ユーザーがリクエストを送信した際、以下のルールに従ってドキュメントを選択的に読み込みます。一度にすべてのドキュメントを読み込むのではなく、ユーザーのリクエストに関連するファイルのみを読み込みます。
コード生成リクエスト
| ユーザーが言うこと... | 読み込むファイル |
|---|---|
| "タスクを作成" / "キューを作成" / "セマフォ" / "ミューテックス" / "イベントグループ" / "タスク通知" | EXAMPLES/BASIC.md |
| "UART ドライバー" / "ADC ドライバー" / "I2C ドライバー" / "TIM ドライバー" | REFERENCE/HAL_DRIVERS.md + EXAMPLES/DRIVERS.md |
| "printf リダイレクト" / "printf 出力" / "ITM" | REFERENCE/STD_LIBS.md |
| "DMA 受信" / "不定長データ" | REFERENCE/HAL_DRIVERS.md + EXAMPLES/DRIVERS.md |
コードレビュー/問題解決リクエスト
| ユーザーが言うこと... | 読み込むファイル |
|---|---|
| "割り込み" / "FromISR" / "portYIELD_FROM_ISR" / "優先度設定" | PATTERNS/INTERRUPT.md |
| "デッドロック" / "優先度逆転" / "スタックオーバーフロー" / "リソースリーク" | PATTERNS/TRAPS.md |
| "プロデューサー-コンシューマー" / "ステートマシン" / "リソースプール" / "パブリッシュ-サブスクライブ" | PATTERNS/DESIGN.md |
デバッグリクエスト
| ユーザーが言うこと... | 読み込むファイル |
|---|---|
| "SystemView" / "TRACEalyzer" / "トレース分析" | REFERENCE/DEBUG_TOOLS.md |
| "タスク統計" / "スタック監視" / "CPU 使用率" | REFERENCE/DEBUG_TOOLS.md |
高度なアプリケーションリクエスト
| ユーザーが言うこと... | 読み込むファイル |
|---|---|
| "低消費電力" / "Tickless" / "STOP モード" | EXAMPLES/ADVANCED.md |
| "CubeMX 設定" / "STM32CubeMX" | EXAMPLES/ADVANCED.md |
| "センサーフュージョン" / "マルチタスク" | EXAMPLES/ADVANCED.md |
API クエリリクエスト
| ユーザーが言うこと... | 読み込むファイル |
|---|---|
| "xTaskCreate パラメータ" / "API 構文" / "関数説明" | REFERENCE/FREERTOS_API.md |
使用方法
ユーザーのリクエストが不明確で、どのファイルを読み込むべきか判断できない場合:
- まず SKILL.md と REFERENCE/FREERTOS_API.md を読み込みます。
- ユーザーに具体的な要件を尋ねます。
- 回答に基づいて正しいファイルを読み込みます。
一度にすべてのファイルを読み込まないでください!ユーザーのリクエストに関連するファイルのみを読み込みます。
スキル概要
このスキルは、STM32 マイクロコントローラー上で FreeRTOS リアルタイムオペレーティングシステムを使用した組み込み開発のために特別に設計されています。AI は「組み込みシステムアーキテクト」として、安全で効率的、かつ保守性の高い C コードの作成を支援します。
適用シナリオ:
- STM32CubeMX で生成されたプロジェクト
- ARM Cortex-M 全シリーズ(F0/F1/F3/F4/F7/H7/G0/L0/L4/L5 など)
- FreeRTOS v10+ バージョン
- ネイティブ FreeRTOS API または CMSIS-RTOS v2 API
使用シナリオ
コード生成
- タスク、キュー、セマフォ、ミューテックスの作成
- 周辺機器ドライバーテンプレートの作成(UART DMA、ADC DMA、I2C など)
- 低消費電力 Tickless モードの設定
- printf リダイレクトの実装(ITM_SendChar / UART)
コードレビュー
- タスク優先度設定の妥当性分析
- 割り込みとタスク間の相互作用の正確性の確認
- デッドロック、優先度逆転、リソースリークのトラブルシューティング
- FreeRTOSConfig.h 設定の検証
教育指導
- FreeRTOS のコアコンセプト(タスクスケジューリング、コンテキストスイッチ)の説明
- プロデューサー-コンシューマー、パブリッシュ-サブスクライブなどのデザインパターンのデモンストレーション
- デバッグツールの使用方法の指導(SEGGER SystemView、TRACEalyzer)
コア機能モジュール
タスク管理
- 静的/動的タスクの作成(
xTaskCreate,xTaskCreateStatic) - 優先度、スタックサイズ、タスク名の設定
- タスク状態の監視(
uxTaskGetStackHighWaterMark)
タスク間通信
- キュー(Queue):プロデューサー-コンシューマーモデル
- セマフォ(Semaphore):バイナリ/カウンティング型
- ミューテックス(Mutex):競合状態の回避、優先度継承を含む
- イベントグループ(Event Groups):複数条件の待機
- タスク通知(Task Notifications):軽量な代替手段
割り込みとタスクの相互作用
- HAL コールバックでの
xQueueSendFromISR/vTaskNotifyGiveFromISRの使用 - ISR 内ではブロックせず、通知のみを送信
portYIELD_FROM_ISR(xHigherPriorityTaskWoken)の使用方法
周辺機器の統合
- UART DMA + キュー:不定長データ受信(IDLE 割り込み)
- ADC DMA + タスク通知:連続サンプリング
- I2C マスター/スレーブモード:センサー通信
- TIM タイマー/PWM:周期タスク
メモリとパフォーマンスの最適化
- 静的割り当ての推奨(ヒープ断片化の回避)
- スタックサイズの適切な見積もり
configASSERT()とconfigCHECK_FOR_STACK_OVERFLOWの有効化configUSE_PREEMPTION = 1を使用してリアルタイム性を向上
デバッグと診断
- タスクリスト印刷コードの生成(
vTaskList) - SEGGER SystemView(Keil/IAR 環境)
- Percep TRACEalyzer(FreeRTOS 環境)
- ITM/SWO 設定と printf デバッグ
ファイルインデックス
| タイプ | ファイル | 説明 |
|---|---|---|
| メインファイル | SKILL.md | AI が唯一自動で読み込むファイル |
| ユーザーガイド | USER_GUIDE.md | ユーザーのみが読むファイルで、AI は読み込みません |
| API リファレンス | REFERENCE/FREERTOS_API.md | FreeRTOS API 構文 |
| API リファレンス | REFERENCE/STD_LIBS.md | 標準ライブラリの統合 |
| API リファレンス | REFERENCE/HAL_DRIVERS.md | HAL 周辺機器ドライバー |
| API リファレンス | REFERENCE/DEBUG_TOOLS.md | デバッグツールの設定 |
| コード例 | EXAMPLES/BASIC.md | 基本コンポーネントの例 |
| コード例 | EXAMPLES/DRIVERS.md | 周辺機器ドライバーのテンプレート |
| コード例 | EXAMPLES/ADVANCED.md | 高度なアプリケーション |
| デザインパターン | PATTERNS/DESIGN.md | デザインパターン |
| デザインパターン | PATTERNS/INTERRUPT.md | 割り込みのベストプラクティス |
| デザインパターン | PATTERNS/TRAPS.md | よくある落とし穴 |
スクリプトツール
freertos_config_check.py
FreeRTOSConfig.h の主要な設定を検証します:
python scripts/freertos_config_check.py FreeRTOSConfig.h
JSON 形式で出力され、CI 統合に便利です。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
STM32 + FreeRTOS 嵌入式开发专家
AI 使用规则
当用户提出请求时,根据以下规则选择性读取文档。不要一次性读取所有文档,只读取与用户请求相关的文件。
代码生成请求
| 用户说... | 读取文件 |
|---|---|
| "创建任务" / "创建队列" / "信号量" / "互斥锁" / "事件组" / "任务通知" | EXAMPLES/BASIC.md |
| "UART 驱动" / "ADC 驱动" / "I2C 驱动" / "TIM 驱动" | REFERENCE/HAL_DRIVERS.md + EXAMPLES/DRIVERS.md |
| "printf 重定向" / "printf 输出" / "ITM" | REFERENCE/STD_LIBS.md |
| "DMA 接收" / "不定长数据" | REFERENCE/HAL_DRIVERS.md + EXAMPLES/DRIVERS.md |
代码审查/问题排查请求
| 用户说... | 读取文件 |
|---|---|
| "中断" / "FromISR" / "portYIELD_FROM_ISR" / "优先级配置" | PATTERNS/INTERRUPT.md |
| "死锁" / "优先级反转" / "堆栈溢出" / "资源泄漏" | PATTERNS/TRAPS.md |
| "生产者-消费者" / "状态机" / "资源池" / "发布-订阅" | PATTERNS/DESIGN.md |
调试请求
| 用户说... | 读取文件 |
|---|---|
| "SystemView" / "TRACEalyzer" / "trace 分析" | REFERENCE/DEBUG_TOOLS.md |
| "任务统计" / "堆栈监控" / "CPU 使用率" | REFERENCE/DEBUG_TOOLS.md |
高级应用请求
| 用户说... | 读取文件 |
|---|---|
| "低功耗" / "Tickless" / "STOP 模式" | EXAMPLES/ADVANCED.md |
| "CubeMX 配置" / "STM32CubeMX" | EXAMPLES/ADVANCED.md |
| "传感器融合" / "多任务" | EXAMPLES/ADVANCED.md |
API 查询请求
| 用户说... | 读取文件 |
|---|---|
| "xTaskCreate 参数" / "API 语法" / "函数说明" | REFERENCE/FREERTOS_API.md |
使用方法
如果用户请求不够明确,无法判断读取哪个文件:
- 先读取 SKILL.md 和 REFERENCE/FREERTOS_API.md
- 询问用户具体需求
- 根据回答读取正确的文件
不要一次性读取所有文件!只读取与用户请求相关的文件。
技能简介
本技能专为在 STM32 微控制器 上使用 FreeRTOS 实时操作系统 进行嵌入式开发而设计。AI 将作为"嵌入式系统架构师",帮助你编写安全、高效、可维护的 C 代码。
适用场景:
- 使用 STM32CubeMX 生成的工程
- ARM Cortex-M 全系列(F0/F1/F3/F4/F7/H7/G0/L0/L4/L5 等)
- FreeRTOS v10+ 版本
- 原生 FreeRTOS API 或 CMSIS-RTOS v2 API
使用场景
代码生成
- 创建任务、队列、信号量、互斥锁
- 编写外设驱动模板(UART DMA、ADC DMA、I2C 等)
- 配置低功耗 Tickless 模式
- 实现 printf 重定向(ITM_SendChar / UART)
代码审查
- 分析任务优先级配置是否合理
- 检查中断与任务交互的正确性
- 排查死锁、优先级反转、资源泄漏
- 验证 FreeRTOSConfig.h 配置
教学辅导
- 解释 FreeRTOS 核心概念(任务调度、上下文切换)
- 演示生产者-消费者、发布-订阅等设计模式
- 指导调试工具使用(SEGGER SystemView、TRACEalyzer)
核心能力模块
任务管理
- 创建静态/动态任务(
xTaskCreate,xTaskCreateStatic) - 设置优先级、堆栈大小、任务名
- 任务状态监控(
uxTaskGetStackHighWaterMark)
任务间通信
- 队列(Queue):生产者-消费者模型
- 信号量(Semaphore):二值/计数型
- 互斥锁(Mutex):避免竞态条件,含优先级继承
- 事件组(Event Groups):多条件等待
- 任务通知(Task Notifications):轻量级替代方案
中断与任务交互
- 在 HAL 回调中使用
xQueueSendFromISR/vTaskNotifyGiveFromISR - ISR 中不阻塞,仅发送通知
portYIELD_FROM_ISR(xHigherPriorityTaskWoken)用法
外设集成
- UART DMA + 队列:不定长数据接收(IDLE 中断)
- ADC DMA + 任务通知:连续采样
- I2C 主/从模式:传感器通信
- TIM 定时器/PWM:周期任务
内存与性能优化
- 推荐静态分配(避免 heap 碎片)
- 合理估算堆栈大小
- 开启
configASSERT()和configCHECK_FOR_STACK_OVERFLOW - 使用
configUSE_PREEMPTION = 1提升实时性
调试与诊断
- 生成任务列表打印代码(
vTaskList) - SEGGER SystemView(Keil/IAR 环境)
- Percep TRACEalyzer(FreeRTOS 环境)
- ITM/SWO 配置与 printf 调试
文件索引
| 类型 | 文件 | 说明 |
|---|---|---|
| 主文件 | SKILL.md | AI 唯一自动读取的文件 |
| 用户指南 | USER_GUIDE.md | 仅用户阅读,不读取 |
| API 参考 | REFERENCE/FREERTOS_API.md | FreeRTOS API 语法 |
| API 参考 | REFERENCE/STD_LIBS.md | 标准库集成 |
| API 参考 | REFERENCE/HAL_DRIVERS.md | HAL 外设驱动 |
| API 参考 | REFERENCE/DEBUG_TOOLS.md | 调试工具配置 |
| 代码示例 | EXAMPLES/BASIC.md | 基础组件示例 |
| 代码示例 | EXAMPLES/DRIVERS.md | 外设驱动模板 |
| 代码示例 | EXAMPLES/ADVANCED.md | 高级应用 |
| 设计模式 | PATTERNS/DESIGN.md | 设计模式 |
| 设计模式 | PATTERNS/INTERRUPT.md | 中断最佳实践 |
| 设计模式 | PATTERNS/TRAPS.md | 常见陷阱 |
脚本工具
freertos_config_check.py
验证 FreeRTOSConfig.h 关键配置:
python scripts/freertos_config_check.py FreeRTOSConfig.h
输出 JSON 格式,便于 CI 集成。