Skip to main content
ASPIE.5
Associate II
Apr 11, 2019 12:39 PM UTC
Solved

Where I can find FreeRTOS documentation?

Hi all,

​Where I can find a complete ST FreeRTOS documentation?

Thanks

This topic has been closed for replies.
Pavel A.
Pavel A.Best answer
Apr 11, 2019 10:43 PM UTC

As David wrote, the CMSIS layer belongs to ARM (or Keil). They likely have error in their documentation (which was generated from sources by Doxygen). So

  1. Read the source : in the CubeMX packages, in Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h
  2. Report errors to Keil.

Regards,

-- pa

6 replies

ST Technical Moderator
Apr 11, 2019 1:30 PM UTC

Hello,

Refer to the UM1722 User manual Developing Applications on STM32Cube with RTOS.

Regards,

Imen

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Thanks
ASPIE.5
ASPIE.5Author
Associate II
Apr 11, 2019 1:34 PM UTC

​Hi Imen,

thanks a lot, but UM1722 it's very poor guide in my opinion.

Let me better explain wit an example:

at page 16, you can find osThreadDef(LED1, LED_Thread1,

 but it' is not explained the prototype of the function, the same for osThreadCreate

David SIORPAES
ST Employee
Apr 11, 2019 4:10 PM UTC

Hello,

FreeRTOS is wrapped with ARM CMSIS-RTOS V1 APIs. Thread management documentation can be found here:

https://www.keil.com/pack/doc/CMSIS/RTOS/html/group__CMSIS__RTOS__ThreadMgmt.html

ASPIE.5
ASPIE.5Author
Associate II
Apr 11, 2019 4:16 PM UTC

​Hi David,

thank you, but it seems somthing wrong.

In the ST "Developing Applications on STM32Cube with RTOS" pg. 16 the osThreadDef has 5 parameters:

osThreadDef (LED1, LED_Thread1, osPriorityNormal, 0, configMINIMAL_STACK_SIZE);

But at the link indicated the same function has 4 parameters!

osThreadDef( name, priority, instances, stacksz )

Probably a quite different definition, I'm looking for the ST definition documentation.

Pavel A.
Pavel A.Best answer
Apr 11, 2019 10:43 PM UTC

As David wrote, the CMSIS layer belongs to ARM (or Keil). They likely have error in their documentation (which was generated from sources by Doxygen). So

  1. Read the source : in the CubeMX packages, in Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h
  2. Report errors to Keil.

Regards,

-- pa

ASPIE.5
ASPIE.5Author
Associate II
Apr 12, 2019 7:20 AM UTC

​Thanks Pavel,

here the example from

STM32Cube_FW_F4_V1.24.0\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS

/// Create a thread and add it to Active Threads and set it to state READY.

/// \param[in]    thread_def   thread definition referenced with \ref osThread.

/// \param[in]    argument     pointer that is passed to the thread function as start argument.

/// \return thread ID for reference by other functions or NULL in case of error.

/// \note MUST REMAIN UNCHANGED: \b osThreadCreate shall be consistent in every CMSIS-RTOS.

osThreadId osThreadCreate (const osThreadDef_t *thread_def, void *argument);