Skip to content

An example of implementation of FreeRTOS-kernel for STM32

License

Notifications You must be signed in to change notification settings

Orel138/STM32_FreeRTOS-Kernel

Repository files navigation


STM32_FreeRTOS-Kernel

Orel138 - STM32_FreeRTOS-Kernel stars - STM32_FreeRTOS-Kernel forks - STM32_FreeRTOS-Kernel

Open in Visual Studio Code license issues Use this template

STM32

Built by Orel138 and contributors

A Template for STM32 Development with the FreeRTOS kernel

This project acts as a foundational template for initiating development with STM32 microcontrollers utilizing the Amazon FreeRTOS kernel, providing a basic framework that can be readily adapted and expanded.

Table of Contents

About

STM32_FreeRTOS-Kernel is a simple project designed to build projects for STM32 microcontrollers.

This project uses Amazon's FreeRTOS kernel middleware in the form of a git submodule rather than that offered by STMicroelectronics with the STM32CubeMX software.

Features

  • A command line interface (CLI) allowing basic functions, but adaptable to any use.

  • A "Heartbeat" FreeRTOS task flashing the user LED.

  • (In FreeRTOS-Sensors application only) Two FreeRTOS tasks:

    a. A task that reads the temperature sensor value and sends it to a FreeRTOS queue.

    b. A task that reads the temperature value from the FreeRTOS queue and displays it on an OLED screen.

Flexibility and Compatibility

Board Family Adaptability: The project is structured to allow easy adaptation to different STM32 family boards (such as U5, L4, H7, etc.).

Important

Driver Compatibility: Switching between different STM32 families involves updating the drivers (HAL/BSP and CMSIS Device) to match the specific requirements of the target board.

Alignment with STMicroelectronics' STM32Cube Topology

STM32_FreeRTOS-Kernel follows the topology of the official packages provided by STMicroelectronics, known as "STM32Cube."

This means that the project is compatible with various STM32Cube Firmware Packages such as STM32Cube Firmware Packages (e.g., STM32CubeH7, STM32CubeWB) or STM32Cube Extension Softwares (e.g., X-CUBE-AZURE, X-CUBE-FREERTOS), enabling further expansion and customization for specific applications.

~~~~~ back to top ~~~~~

Architecture Overview

Software Bill Of Materials

This Software Bill Of Materials (SBOM) itemizes the software components included in this package, detailing the copyright holder and licensing terms for each.

Component Version Copyright License
CMSIS Core x ARM Limited Apache License 2.0
CMSIS Device STM32WB5 x ARM Limited Apache License 2.0
Drivers HAL/LL STM32WB5 x STMicroelectronics BSD-3-Clause
BSP STM32WB5MM-DK Board x STMicroelectronics BSD-3-Clause
BSP Components x STMicroelectronics BSD-3-Clause
FreeRTOS-Kernel x Amazon.com MIT
Applications projects x Amazon.com, STMicroelectronics, Orel138 MIT

~~~~~ back to top ~~~~~

Requirements

Boards available

Development toolchains and compilers

Before you begin, ensure you have met the following softwares installed on your computer :

  • STM32CubeIDE v1.14.1
  • STM32CubeMX v6.11.0
  • STM32CubeProgrammer v2.16.0

~~~~~ back to top ~~~~~

Installation

To install STM32_FreeRTOS-Kernel, follow these steps:

  1. Clone the repository
    git clone https://github.com/Orel138/STM32_FreeRTOS-Kernel.git
  2. Navigate to the project directory
    cd STM32_FreeRTOS-Kernel
  3. Run the following command.
    git submodule update --init
  4. Open the project with STM32CubeIDE (open the .project or .cproject file)/ Projects for STM32CubeIDE are located in Projects/{Board}/Applications/{FreeRTOS-xxxxxxxx}/STM32CubeIDE/
  5. Build the project in STM32CubeIDE.
  6. Debug in the IDE or use STM32cubeProgrammer to flash the executable.
  7. The executable (.elf file) for the example will be in Projects/{Board}/Applications/{FreeRTOS-xxxxxxxx}/STM32CubeIDE/Debug folder.
  • You can now drag and drop the .elf file in your board and see the user LED blink.
  • Or you can modify the project for your STM32 target with STM32CubeIDE and STM32CubeMX.

~~~~~ back to top ~~~~~

Usage

  • WIP

~~~~~ back to top ~~~~~

References

  • WIP

Contributing

We welcome your contributions to STM32_FreeRTOS-Kernel.

To contribute:

  1. Fork the repository.
  2. Create a new branch: git checkout -b [branch-name].
  3. Make your changes and commit them: git commit -m '[commit-message]'.
  4. Push to the original branch: git push origin [project-name]/[location].
  5. Create the pull request.

~~~~~ back to top ~~~~~

License

STM32_FreeRTOS-Kernel is released under the MIT license © Orel138.

~~~~~ back to top ~~~~~

Tip

I trust you'll find this project enjoyable. Should you appreciate the project, bestowing a small ⭐ on it is a meaningful gesture, signifying: My efforts are recognized. Your support would be greatly valued. Many thanks!

About

An example of implementation of FreeRTOS-kernel for STM32

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published