SuperAPI AI Directory

stm32-freertos-developer

Coding & development

View repository

Updated 10-15 14:00

About this skill

STM32 + FreeRTOS Embedded Development Expert

AI Usage Rules

When the user makes a request, follow the rules belowSelectively readdocumentation. Do not read all documents at once; only read the files relevant to the user's request.

Code Generation Requests

User says... Read file
"Create task" / "Create queue" / "Semaphore" / "Mutex" / "Event group" / "Task notification" EXAMPLES/BASIC.md
"UART driver" / "ADC driver" / "I2C driver" / "TIM driver" REFERENCE/HAL_DRIVERS.md + EXAMPLES/DRIVERS.md
"printf redirection" / "printf output" / "ITM" REFERENCE/STD_LIBS.md
"DMA receive" / "variable-length data" REFERENCE/HAL_DRIVERS.md + EXAMPLES/DRIVERS.md

Code Review/Troubleshooting Requests

User says... Read file
"Interrupt" / "FromISR" / "portYIELD_FROM_ISR" / "priority configuration" PATTERNS/INTERRUPT.md
"Deadlock" / "priority inversion" / "stack overflow" / "resource leak" PATTERNS/TRAPS.md
"Producer-consumer" / "state machine" / "resource pool" / "publish-subscribe" PATTERNS/DESIGN.md

Debugging Requests

User says... Read file
"SystemView" / "TRACEalyzer" / "trace analysis" REFERENCE/DEBUG_TOOLS.md
"Task statistics" / "stack monitoring" / "CPU usage" REFERENCE/DEBUG_TOOLS.md

Advanced Application Requests

User says... Read file
"Low power" / "Tickless" / "STOP mode" EXAMPLES/ADVANCED.md
"CubeMX configuration" / "STM32CubeMX" EXAMPLES/ADVANCED.md
"Sensor fusion" / "multitasking" EXAMPLES/ADVANCED.md

API Query Requests

User says... Read file
"xTaskCreate parameters" / "API syntax" / "function description" REFERENCE/FREERTOS_API.md

How to Use

If the user's request is not clear enough to determine which file to read:

  1. First read SKILL.md and REFERENCE/FREERTOS_API.md
  2. Ask the user for their specific needs
  3. Read the correct file based on the answer

Do not read all files at once! Only read the files relevant to the user's request.


Skill Overview

This skill is designed specifically for embedded development using STM32 microcontrollers with the FreeRTOS real-time operating system . The AI will act as an "embedded systems architect" to help you write safe, efficient, and maintainable C code.

Applicable scenarios:

  • Projects generated using STM32CubeMX
  • The entire ARM Cortex-M series (F0/F1/F3/F4/F7/H7/G0/L0/L4/L5, etc.)
  • FreeRTOS v10+ versions
  • Native FreeRTOS API or CMSIS-RTOS v2 API

Use Cases

Code Generation

  • Create tasks, queues, semaphores, mutexes
  • Write peripheral driver templates (UART DMA, ADC DMA, I2C, etc.)
  • Configure low-power Tickless mode
  • Implement printf redirection (ITM_SendChar / UART)

Code Review

  • Analyze whether task priority configuration is reasonable
  • Check the correctness of interrupt and task interaction
  • Troubleshoot deadlocks, priority inversion, and resource leaks
  • Verify FreeRTOSConfig.h configuration

Teaching Assistance

  • Explain FreeRTOS core concepts (task scheduling, context switching)
  • Demonstrate design patterns such as producer-consumer and publish-subscribe
  • Guide the use of debugging tools (SEGGER SystemView, TRACEalyzer)

Core Capability Modules

Task Management

  • Create static/dynamic tasks (xTaskCreate, xTaskCreateStatic)
  • Set priority, stack size, and task name
  • Task state monitoring (uxTaskGetStackHighWaterMark)

Inter-Task Communication

  • Queue: Producer-consumer model
  • Semaphore: Binary/counting
  • Mutex: Avoid race conditions, includes priority inheritance
  • Event Groups: Wait for multiple conditions
  • Task Notifications: Lightweight alternative

Interrupt and Task Interaction

  • Use in HAL callbacks xQueueSendFromISR / vTaskNotifyGiveFromISR
  • Do not block in ISR, only send notifications
  • portYIELD_FROM_ISR(xHigherPriorityTaskWoken) usage

Peripheral Integration

  • UART DMA + Queue: Variable-length data reception (IDLE interrupt)
  • ADC DMA + Task Notification: Continuous sampling
  • I2C master/slave mode: Sensor communication
  • TIM timer/PWM: Periodic tasks

Memory and Performance Optimization

  • Static allocation recommended (avoid heap fragmentation)
  • Estimate stack size reasonably
  • Enable configASSERT() and configCHECK_FOR_STACK_OVERFLOW
  • Use configUSE_PREEMPTION = 1 to improve real-time performance

Debugging and Diagnostics

  • Generate task list print code (vTaskList)
  • SEGGER SystemView (Keil/IAR environment)
  • Percep TRACEalyzer (FreeRTOS environment)
  • ITM/SWO configuration and printf debugging

File Index

Type File Description
Main file SKILL.md The only file automatically read by AI
User guide USER_GUIDE.md For user reading only, not read
API reference REFERENCE/FREERTOS_API.md FreeRTOS API syntax
API reference REFERENCE/STD_LIBS.md Standard library integration
API reference REFERENCE/HAL_DRIVERS.md HAL peripheral drivers
API reference REFERENCE/DEBUG_TOOLS.md Debugging tool configuration
Code examples EXAMPLES/BASIC.md Basic component examples
Code examples EXAMPLES/DRIVERS.md Peripheral driver templates
Code examples EXAMPLES/ADVANCED.md Advanced applications
Design patterns PATTERNS/DESIGN.md Design patterns
Design patterns PATTERNS/INTERRUPT.md Interrupt best practices
Design patterns PATTERNS/TRAPS.md Common pitfalls

Script Tools

freertos_config_check.py

Verify key FreeRTOSConfig.h configurations:

python scripts/freertos_config_check.py FreeRTOSConfig.h

Output JSON format, convenient for CI integration.