Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Real Time Operating System implemented for STM32

NotificationsYou must be signed in to change notification settings

stm32duino/STM32FreeRTOS

This is a port of FreeRTOS for STM32 as Arduino libraries.

For more information about FreeRTOS, visit theFreeRTOS Web Site.Also, See the very usefulGetting Started page.

This library provides 2 FreeRTOS versions:

Each have been modified by ST (See st_readme.txt in FreeRTOS Source).

These are the same provided with theSTM32Cube MCU Packages.Or thanks toSTMicroelectronics GitHub organization:stm32_mw_freertos.

Configuration

FreeRTOS has several configuration options, which can be specified from within the FreeRTOSConfig.h file.

This library provides a default FreeRTOS configuration file namedFreeRTOSConfig_Default.h.

User can provide his own FreeRTOS configuration file at sketch level by adding his configuration in a file namedSTM32FreeRTOSConfig.h.

Or add extra FreeRTOS configuration to the default at sketch level by adding an extra configuration in a file namedSTM32FreeRTOSConfig_extra.h.

Heap allocation schemes are provided by FreeRTOS, seeMemory allocation implementations included in the RTOS source.To extend those schemes a thread-safe heap allocation using C runtime (Newlib) has been added based on Dave Nadler work:

http://www.nadler.com/embedded/newlibAndFreeRTOS.html

By default, theheap_useNewlib.c is used. It can be changed thanks a define in the configuration file:

/* Define memory allocation implementations to use: * 1 to 5 for heap_[1-5].c * -1 for heap_useNewlib_ST.c * Default -1 see heap.c */

Since v10.0.1, CMSIS-RTOSv2 can be used instead of default CMSIS-RTOS.

configUSE_CMSIS_RTOS_V2 has to be defined and set to1 to useCMSIS-RTOSv2.

Limitations

  • MPU: not supported.
  • No CMSIS-RTOSv2 support provided. It is provided as example.
  • On Cortex-M0 and Cortex-M0+, all IT are disabled between xTaskCreate() and vTaskStartScheduler().So it is not possible to use IT inbetween, like Serial.print() ...This is the reason why, in example "frLiyLayland", between xTaskCreate() and vTaskStartScheduler(),we use direct printf(), which will access directly USART without interrupt

Files & Configuration

  • STM32FreeRTOS.h : Must always be #include first. It references required include files.
  • STM32FreeRTOSConfig.h : If exist at sketch level, it contains the FreeRTOS configurations.
  • STM32FreeRTOSConfig_extra.h : If exist at sketch level, it contains extra FreeRTOS configurations.
  • FreeRTOSConfig_Default.h : Contains the default FreeRTOS configurations for this STM32 port ifSTM32FreeRTOSConfig.h doesn't exist.

Test results (usingArduino_Core_STM32)

STM32FreeRTOS v9.0.x

BoardAnalogRead_DigitalReadBlink_AnalogReadfrBlinkfrBlinkPrintfrJitterfrLiuLayland
Nucleo F091RCPASSEDPASSEDPASSEDPASSEDPASSEDFAILED
Nucleo F103RBPASSEDPASSEDPASSEDPASSEDPASSEDPASSED
Nucleo F303REPASSEDPASSEDPASSEDPASSEDPASSEDPASSED
Nucleo F429ZIPASSEDPASSEDPASSEDPASSEDPASSEDPASSED
STM32F746G-DISCOVERYPASSEDPASSEDPASSEDPASSEDPASSEDPASSED
Nucleo L053R8PASSED*PASSED*PASSED*PASSED*PASSED*FAILED
Nucleo L152REPASSEDPASSEDPASSEDPASSEDPASSEDPASSED
B-L475E-IOT01APASSEDPASSEDPASSEDPASSEDPASSEDPASSED

STM32FreeRTOS v10.0.x

BoardAnalogRead_DigitalReadfrBlinkPrintfrLiuLaylandfrBlink (CMSIS-RTOSv2)Blinky (CMSIS-RTOSv2)
Nucleo F091RCPASSEDPASSEDFAILEDPASSEDPASSED
Nucleo F103RBPASSEDPASSEDPASSEDPASSEDPASSED
Nucleo F303REPASSEDPASSEDPASSEDPASSEDPASSED
Nucleo F429ZIPASSEDPASSEDPASSEDPASSEDPASSED
STM32F746G-DISCOVERYPASSEDPASSEDPASSEDPASSEDPASSED
Nucleo-G071RBPASSEDPASSEDFAILEDPASSEDPASSED
Nucleo H743ZIPASSEDPASSEDPASSEDPASSEDPASSED
Nucleo L053R8PASSED*PASSED*FAILEDPASSEDPASSED
Nucleo L152REPASSEDPASSEDPASSEDPASSEDPASSED
B-L475E-IOT01APASSEDPASSEDPASSEDPASSEDPASSED
P-Nucleo-WB55RGPASSEDPASSEDFAILEDPASSEDPASSED

* PASSED withconfigUSE_NEWLIB_REENTRANT set to 0 due to small RAM.

STM32FreeRTOS v10.2.x

BoardAnalogRead_DigitalReadfrBlinkPrintfrLiuLaylandfrBlink (CMSIS-RTOSv2)Blinky (CMSIS-RTOSv2)
Nucleo F091RCPASSEDPASSEDFAILEDPASSEDPASSED
Nucleo F103RBPASSEDPASSEDPASSEDPASSEDPASSED
Nucleo F303REPASSEDPASSEDPASSEDPASSEDPASSED
Nucleo F411REPASSEDPASSEDPASSEDPASSEDPASSED
STM32F746G-DISCOVERYPASSEDPASSEDPASSEDPASSEDPASSED
Nucleo-G071RBPASSEDPASSEDFAILEDPASSEDPASSED
Nucleo-G474REPASSEDPASSEDFAILEDPASSEDPASSED
Nucleo H743ZIPASSEDPASSEDPASSEDPASSEDPASSED
Nucleo L053R8PASSED*PASSED*FAILEDPASSEDPASSED
Nucleo L152REPASSEDPASSEDPASSEDPASSEDPASSED
B-L475E-IOT01APASSEDPASSEDPASSEDPASSEDPASSED
P-Nucleo-WB55RGPASSEDPASSEDFAILEDPASSEDPASSED

* PASSED withconfigUSE_NEWLIB_REENTRANT set to 0 due to small RAM.

STM32FreeRTOS v10.3.1

BoardAnalogRead_DigitalReadfrBlinkPrintfrLiuLaylandfrBlink (CMSIS-RTOSv2)Blinky (CMSIS-RTOSv2)
Nucleo F091RC (Cortex-M0)PASSEDPASSEDPASSEDPASSEDPASSED
Nucleo G071RB (Cortex-M0+)PASSEDPASSEDPASSEDPASSEDPASSED
Nucleo F103RB (Cortex-M3)PASSEDPASSEDPASSEDPASSEDPASSED
Nucleo L476RG (Cortex-M4)PASSEDPASSEDPASSEDPASSEDPASSED
Nucleo H743ZI (Cortex-M7)PASSEDPASSEDPASSEDPASSEDPASSED
Nucleo L552ZE-Q (Cortex-M33)PASSEDPASSEDPASSEDPASSEDPASSED
Nucleo U575ZI-Q (Cortex-M33)PASSEDPASSEDPASSEDPASSEDPASSED

About

Real Time Operating System implemented for STM32

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors7

Languages


[8]ページ先頭

©2009-2025 Movatter.jp