SuperAPI AI 工具集

stm32-freertos-developer

编程与开发

查看项目

更新于 10-13 14:36

技能介绍

用途

本技能专为在 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

主要能力

任务管理

  • 创建静态/动态任务(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 调试

使用方式

技能采用"按需读取文档"的机制:AI 根据用户请求的具体类型选择性读取相关文档,不一次性读取所有文档。

  • 代码生成请求:如"创建任务/队列/信号量/互斥锁/事件组/任务通知"读取 EXAMPLES/BASIC.md;"UART 驱动/ADC 驱动/I2C 驱动/TIM 驱动"读取 REFERENCE/HAL_DRIVERS.md + EXAMPLES/DRIVERS.md;"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 分析"、"任务统计/堆栈监控/CPU 使用率"读取 REFERENCE/DEBUG_TOOLS.md。
  • 高级应用请求:如"低功耗/Tickless/STOP 模式"、"CubeMX 配置"、"传感器融合/多任务"读取 EXAMPLES/ADVANCED.md。
  • API 查询请求:如"xTaskCreate 参数/API 语法/函数说明"读取 REFERENCE/FREERTOS_API.md。

如果用户请求不够明确,无法判断读取哪个文件:先读取 SKILL.md 和 REFERENCE/FREERTOS_API.md,询问用户具体需求,再根据回答读取正确的文件。

文件索引

  • 主文件:SKILL.md(AI 唯一自动读取的文件)
  • 用户指南:USER_GUIDE.md(仅用户阅读,不读取)
  • API 参考:REFERENCE/FREERTOS_API.md(FreeRTOS API 语法)、REFERENCE/STD_LIBS.md(标准库集成)、REFERENCE/HAL_DRIVERS.md(HAL 外设驱动)、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 集成。

限制

资料未提供关于该技能的价格、收费模式、具体支持的编译器或 IDE 完整列表之外的平台信息,也未提供使用效果或性能保证数据,这些内容暂未提供。