iMX RT1064 processing speed in flash and itcm memories

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

iMX RT1064 processing speed in flash and itcm memories

Jump to solution
511 Views
etronic_arg
Contributor II

Hi,

It is a very basic question.
I changed the led blinky example code from SDK 2.12.1, instead of using the systick as a delay, I called a soft delay function:

void delay(void)
{
   for(uint32_t i=0; i<10000000; i++)
      __NOP();
}

I downloaded it in the MIMXRT1064-EVK:

1) Configuration "debug"
2) Configuration "flexspi_nor_debug"

In the configuration 1 the main code runs from address 0x00002388 (RAM ITCM), led blinks at 10Hz.
In the configuration 2 the main code runs from address 0x70003FD4 (Flash memory), led blinks at 15Hz.

Shouldn't blink faster when the code runs from ITCM?
I assume that the code runs at 600Mhz from ITCM and 166Mhz from Flash, doesn't it?

Thanks

 

Labels (1)
0 Kudos
1 Solution
464 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @etronic_arg ,

No, the truth is their speed is totally same. I guess you are using IAR. In the IAR project, the debug option doesn't use any compile optimization while the flexspi_nor_debug option set the optimization to middle.

But the more important thing is SDK demo enable cache function by default. The small piece of code will be totally cached. And the cache runs at same speed as ITCM.

 

Regards,

Jing

View solution in original post

0 Kudos
2 Replies
465 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi @etronic_arg ,

No, the truth is their speed is totally same. I guess you are using IAR. In the IAR project, the debug option doesn't use any compile optimization while the flexspi_nor_debug option set the optimization to middle.

But the more important thing is SDK demo enable cache function by default. The small piece of code will be totally cached. And the cache runs at same speed as ITCM.

 

Regards,

Jing

0 Kudos
434 Views
etronic_arg
Contributor II
Thank you Jing,

Doing some calculations, for the LED blinking at 10Hz the delay is 50mSeg aprox. As the for loop repeats 10E+7 times, the time of 1 iteration is 50mS/10E+7 = 5pS -> 200Mhz. It looks like the delay loop has 3 instructions, giving 600Mhz, while in the other case the loop has 2 instructions.
Based on these calculations, your answer seems to be correct.
0 Kudos