Yuri,
1) How exactly does the code snipped from my previous post enable the -code- cache? PSCCR refers to the system cache, PCCCR refers to code cache. This last one is not refered anywhere, except for in the function LMEM_EnableCodeCache, which is not called.
2) Thanks for the pointer. My IMX7D has revision 1.2 (C as last character in the name), so I assume the cache should work.
3) I don't know what you mean by "create a request to send it".
Anyway, this is pretty easy to test yourself.
Just take the FreeRTOS_BSP_1.0.1_iMX7D, take the hello_world and hello_world_ddr examples. Add the following code:
////////////////////////////////////////////////////////////////////////////////
// Code
////////////////////////////////////////////////////////////////////////////////
volatile long long int a;
/*!
* @brief A basic user-defined task
*/
void HelloTask(void *pvParameters)
{
uint8_t receiveBuff;
while(1)
{
a = a + 1;
}And just see how fast a increments in e.g. 10 seconds.
In DDR, this is about 0.7M times per second, which is waaay lower than TCM.
The main function is called from system_MCIMX7D_M4.c, which 'should' initialize all caches as you say.
Even when I call LMEM_EnableSystemCache(LMEM) and LMEM_EnableCodeCache(LMEM), the result stays the same.
I hope you can now also test this yourself, and are able to provide answers to my initial questions.