OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3162|回复: 2

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

[复制链接]

26

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2016-10-23
在线时间
78 小时
发表于 2017-7-23 02:37:19 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 鸡蛋饭 于 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);
}

}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-3-16
在线时间
21 小时
发表于 2017-7-23 10:15:02 | 显示全部楼层
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-8-15
在线时间
3 小时
发表于 2019-10-6 21:52:25 | 显示全部楼层
cc2=TIM3->CNT;读取timer3的count值的需要更多的时间吧,不太理解为啥?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-16 18:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表