把数组放到ccm中,速度反而变慢了

2019-07-20 13:12发布

本帖最后由 鸡蛋饭 于 2017-7-23 02:39 编辑

测试结果:

keil打开代码优化的情况下,放在ram和ccm中速度是一样的,耗时=1000
关闭优化,ram耗时=1000,ccm耗时=1125

根据手册上的数据,ccm比ram快20%,可是测试结果ccm反而慢了10%

求高手解答

测试方法就是让一个4k的数组++,分别放到ram和ccm中,1000次以后用flash记录下时间
(定时器ARR和PSC都是0xFFFF)
/*
vu8 cc[4096] ={0};
vu8 cc2[4096]  ={0};
vu32 cCnt =0;
vu32 tCnt[1]={0};
vu32 i=0;
*/


vu8 cc[4096] __attribute__((at(0x10000000))) ={0};
vu32 cCnt __attribute__((at(0x10001000))) =0;
vu32 tCnt[1] __attribute__((at(0x10001004))) ={0};
vu8 cc2[4096] __attribute__((at(0x10001008))) ={0};
vu32 __attribute__((at(0x10002008))) i=0;




while(1)
{
++cCnt;
for(i=0; i<4096;++i)
{
        ++cc【i】;
        cc2=TIM3->CNT;
}
if(cCnt==1000)
{
        tCnt[0]=TIM3->CNT;
        
        STMFLASH_Write(0X0800C008,(u32*)tCnt,1);
        
        GPIOD->ODR^=0x1000;
        while(1);
}

}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。