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?
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.
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:
@lgacnik97 Where is the official CMSIS-RTOS2 repo? If you mean this one:
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?