cancel
Showing results for 
Search instead for 
Did you mean: 

Are there any documents that describe the use of the scheduler or the openThread API in more detail?

MP123
Associate III

Are there any documents that describe the use of the scheduler or the openThread API in more detail? A little more detailed explanations of using the openThread api and the Scheduler would be very useful.

What are the advantages of using this Scheduler versus Freertos?

Thank you!

5 REPLIES 5
Christophe Arnal
ST Employee

Hello,

Both topic will be covered more in details in the up coming AN for which I still do not have committed date but that should be available soon on the website.

Regarding the advantages of using the Scheduler versus Freertos, the answer is that these are completely different as the scheduler is not an OS.

The Scheduler is an optimized packaging of a standard basic bare metal implementation of a while(1){} loop. It is optimized in the sense that it implements critical section surrounding the test of pending requests and the entry in low power mode. These critical section which are often missing in bare metal implementation lead to system instability when the system enters low power mode ( especially stop mode)

As the scheduler is a basic bare metal implementation, it does not implement context switching.

If you need the capability to interrupt a running task with another higher priority one, then you will need to select an OS as the scheduler will not do the job.

If you were planning to implement a basic while(1){} loop in the background, then I would strongly recommend to use the provided scheduler although this is not mandatory and could be replaced by your own implementation.

For the time being, you may find some brief description of the API in the file scheduler.h

Regards.

MP123
Associate III

@Christophe Arnal​ Any updates regarding those two documents?

Christophe Arnal
ST Employee

Hello,

The AN has been now published

AN5289: Building wireless applications with STM32WB Series microcontrollers st.com web site.

Regards.

Mr. Arnal,

as I as can see in this document You are describing scheduler called Sequencer that look very similar (beside that some function prototypes are changed) to Scheduler from STM32CubeWB examples. But I can not see this implementation of Sequencer in last STM32CubeWB software package (nor patch). 

Am I wrong? If not, are there any big differences between those two?

Christophe Arnal
ST Employee

Hello,

The sequencer as described in the AN will be part of the v1.2.0 package planned to be delivered in the coming weeks.

The code of the sequencer and the scheduler is identical.

The two modifications are :

UTIL_SEQ_RegTask() is adding one parameter

UTIL_SEQ_EvtIdle() is adding one parameter

The first one is not used in the sequencer, this is reserved for future used

The second one is not used in our current application but can be used as it will help controlling better which task can be executed or not while waiting for an event.

You will have nothing to redesign in an application already running the scheduler. This is 98% API renaming.

Regards