We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
In the above figuresMPU operating frequency:MPU_CLK = ARM_FCLK (Hardware Divider =1 ).ARM_FCLK =Core clock of Cortex-A8.L3 interconnect frequency:AXI_FCLK(L3 interconnect ) = ARM_FCLK/2 (Hardware divider of 2).SRAM frequency:Operates at L3 interconnect frequency.
#define CM_CLKEN_PLL_MPU 0x48004904#define CM_CLKSEL1_PLL_MPU 0x48004940#define CM_CLKSEL2_PLL_MPU 0x48004944#define CM_IDLEST_PLL_MPU 0x48004924[size=2]#define CM_CLKSEL2_PLL_MPU_var (volatile unsigned int *)(CM_CLKSEL2_PLL_MPU)[/size]#define CM_CLKSEL1_PLL_MPU_var (volatile unsigned int *)(CM_CLKSEL1_PLL_MPU)#define CM_IDLEST_PLL_MPU_var (volatile unsigned int *)(CM_IDLEST_PLL_MPU)#define CM_CLKEN_PLL_MPU_var (volatile unsigned int *)(CM_CLKEN_PLL_MPU)
// Unlocking the DPLL *CM_CLKEN_PLL_MPU_var= 0x35; // waiting for the pll to be put in to bypass mode while (*CM_IDLEST_PLL_MPU_var & 0x00); //// clksel1= 12580c for 600Mhz //// clksel1= 112c0c for 300Mhz //// clksel1= 10640c for 100Mhz //// clksel1= 10320c for 50Mhz // Setting M and clock dividers *CM_CLKSEL1_PLL_MPU_var=0x10320c; // Setting M2 *CM_CLKSEL2_PLL_MPU_var=0x01; //Putting back the Dpll in to normal mode *CM_CLKEN_PLL_MPU_var= 0x37; //Waiting for the Dpll1 to lock on the frequency while (*CM_IDLEST_PLL_MPU_var & 0x01);
Yes, please post your code. If it's large I recommend using something like pastebin.com instead of posting it directly.When you say you're using on-chip SRAM are you referring to the 64KB at 0x40200000? This is still on the other side of the L3 bus so you'd definitely be accessing it at bus speed and not something derived from the CPU clock. I can't find any SRAM internal to the CPU unless you're using part of L2 cache in lockdown. If you're going through L3 that's a 200MHz clock, if setup correctly of course.Still not sure why you're getting what appears to be variable perf/MHz for your larger data set if L2 cache is enabled. It could be that page attributes aren't setup correctly, or something uninitialized with NEON. There's a lot of stuff to setup.