AnsweredAssumed Answered

About performance of SDRAM in IMXRT1050/60-EVK(B)

Question asked by Takashi Kashiwagi on Oct 30, 2018
Latest reply on Oct 31, 2018 by Takashi Kashiwagi

Hello everyone,

 

I am hoping to use SDRAM somehow at high speed, but now it is very slow than TCM.

 

 

I measured performance of "Number of calls to vApplicationIdleHook per sec".

 

"vApplicationIdleHook" is as follows. This makes it possible to know how many times the vApplicationIdleHook was called in one second.

uint32_t g_u32CurrentRun = 0u;
DefKERNEL_SECTION_ITCM void vApplicationIdleHook(void)
{
    uint32_t primask;

    __asm volatile ("MRS %0, primask" : "=r" (primask) );
    __asm volatile ("cpsid i" : : : "memory");

    g_u32CurrentRun++;
    __asm volatile ("MSR primask, %0" : : "r" (primask) : "memory");
}

 

 

other condition is as follows.
1. Kernel is on TCM.
2. Kernel is on SDRAM with chache
3. kernel is on SDRAM wtihout cache.

In all conditions, I used IMXRT1060-EVK with MCUXPresso IDE(GCC 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255204]) & -O2.

 

a result is as follows. (A larger number indicates a higher performance)

 

With TCM you get nearly maximum performance, but SDRAM is not far from that.

 

Is there any way to get SDRAM performance a bit more?

 

for reference, I atached projet File and xlsx.

 

We are looking forward to your advice.

T.Kashiwagi

Outcomes