cancel
Showing results for 
Search instead for 
Did you mean: 

No implementation for CMSIS-RTOSv2 Memory Pools From CubeMX

lgacnik97
Associate III

I'm using CMSIS-RTOSv2 middleware which I configure through CubeMX. The files generated by CubeMX are somewhat different from the ones from official CMSIS-RTOSv2 github repository where latter has all implementations for memory pool functions and my project, whose code is generated through CubeMX, doesn't have them. Upon inspection of "cmsis_os2.h" header file I found that declarations for memory pool functions are provided but no implementations are given inside "cmsis_os2.c" file. I have CubeMX updated to latest version.

Any ideas why are memory pool functions in CMSIS-RTOSv2 literally cut out of implementation file?

4 REPLIES 4
ramprakash09
Associate II

Hi,

The DTCM is a high-speed memory that is directly connected to the processor and is not directly accessible by the DMA controller. The DTCM is intended for storing critical real-time data and code that requires low-latency access. The DMA controller, on the other hand, is designed to transfer data between peripherals and memory without CPU intervention, which is typically used for larger, less time-critical data transfers.

I hope this may help.

Regards

@ramprakash09 Any reason you brought up DTCM and DMA when the post didn't mention it? Just not following here.

If you feel a post has answered your question, please click "Accept as Solution".

@ramprakash09,

As stated by TDK there is no mention of DTCM and DMA in the post. I think he tagged F1 product.

Also, your statement is incorrect. In fact, it depends on the product. On F7 family only the CPU could access DTCM, meanwhile on H7 family MDMA could access TCM memories through AHBS bus:

SofLit_0-1692971789870.png

 

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.
Pavel A.
Evangelist III

@lgacnik97 Where is the official CMSIS-RTOS2 repo? If you mean this one:

https://github.com/cmsis-packs/cmsis-5/tree/cmsis/CMSIS/RTOS2/Source

it is not official and there's no source for osMemoryPool stuff. You're free to bring your own.

Or is this the ARM implementation for FreeRTOS?

https://github.com/ARM-software/CMSIS-FreeRTOS/blob/main/CMSIS/RTOS2/FreeRTOS/Source/cmsis_os2.c