Speedup FreeRTOS application on DDR

Hello all,
I needed support to speedup my application performance.
Currently we are observing that our when we put our application on OCMC and MSMC it is working correctly. But when the same application is shifted to DDR due to memory and multicore functionality , the app behaves differently and is quite slow.
We are using TDA4VM development board. Our application worked fine on DDR on ti-rtos but when shifted to FreeRTOS the same app on DDR is slowed down.

What could be the possible reason for this and how can we solve this performance issue?


Hi there,

the first thing I would check is whether the bsp initializes the memory controller correctly. Have you dumped the respective sfrs in both the working and non working case and compared the output?

Hello RAc,
Are u suggesting to use a debugger to check the initialization of memory controller?Actually we dont have a debugger at our end.
Also we are using the CAN profiling demo app available in the FreeRTOS SDK for Tda4vm.
Any other way to check?

Do you have a serial console? You could do the register dump manually via printf calls. I do not have other suggestions, sorry…

Yes we have serial console.
Actually I am very new to the process,How can I do the register dump,like where I can add the printfs.

I do not know tirtos, so I c ould not tell you where to add your dump there, but in FreeRTOS you can do it any time after your memory controller has initialized and you have serial output enabled (for example, right before vTaskStartScheduler()).

You would need to know where in your MCU the SFR block is that holds the values for the memory controlling unit, then iterate in aread-printf loop over that area.

In particular, look to see if there are differences in the cache setup, if there is a cache.