Skip to content

Conversation

@Ivanca21
Copy link
Collaborator

@Ivanca21 Ivanca21 commented Dec 2, 2025

This PR adds initial FreeRTOS support for STM32F429ZI in mikroSDK v2.

Changes:

  • Added thirdparty/FreeRTOS/FreeRTOS-Kernel.
  • Introduced a new CMake library MikroSDK.FreeRTOSKernel that:
    • builds core kernel sources (tasks.c, queue.c, timers.c, event_groups.c, stream_buffer.c, list.c)
    • uses the portable/GCC/ARM_CM4F port
    • uses portable/MemMang/heap_4.c as the default heap implementation.
  • Added target–specific configuration file
    targets/arm/mikroe/common/include/FreeRTOSConfig/STM32/STM32F429ZI/FreeRTOSConfig.h.
  • Hooked FreeRTOS into the build only for:
    • TOOLCHAIN_ID = gcc_arm_none_eabi
    • MCU_NAME = STM32F429ZI
      via thirdparty/CMakeLists.txt and tests/CMakeLists.txt.

New tests:

  • Added tests/freertos/ group with the following examples:
    • task_test – basic LED blink task
    • task_notification
    • sw_timer
    • queue
    • mutex
    • event_group
    • counting_semaphore
    • binary_semaphore

Notes:

  • No changes were made to existing HAL/DRV implementations.
  • FreeRTOS is currently enabled only for STM32F429ZI + GCC; other MCUs/toolchains are unaffected.
  • Directory structure is prepared so that additional MCUs can be added later by:
    • providing a new FreeRTOSConfig.h under targets/.../FreeRTOSConfig/...
    • extending the CMake logic in thirdparty/FreeRTOS and tests/freertos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants