个人感觉,9200的CPU频率的设定过程是比较繁琐的,总结一下,是如下的过程:
main clock(外部主晶振)-> PLLA clock-> master clock(MCK)-> processor clock
用到的设定寄存器有两个:PLLAR,MCKR
外部晶振用的是典型的18,43200MHZ,
(1)看了Atmel公司的例程,感觉它的CPU频率设定的不大对:(
PLLAR = 0X20263E04
即: PLLA clock = 18,432000/04 * (0x26+1) =179,712000
MCKR = 0x00000202
即: MCK = PLLA clock
processor clock = 3 * MCK =539,136000 ?????
CPU频率 539M???
(2) 我自己的第1种设定
PLLAR = 0X20263E04
MCKR = 0x00000002
processor clock = MCK =179,712000
(3)我第2种设定
PLLAR = 0X200C3E04
即: PLLA clock = 18,432000/04 * (0x0C+1) =59,904000
MCKR = 0x00000202
即: MCK = PLLA clock
processor clock = 3 * MCK = 179,712000
由于9200没有直接读CPU clock的寄存器,ADS也不支持观察单条语句的执行时间,为了判断CPU的运行速度,我做了一个测试:
for(tt=0;tt<=5000;tt++)
{
for(ttt=0;ttt<=3360;ttt++)//1ms
{
__asm{
NOP;
NOP;
NOP;
NOP;
NOP;
NOP;
NOP;
NOP;
NOP;
NOP;
}
}
}
(1)的设置,在开了Icache,Dcache,完成这个循环用了 12s,不开cache用了 59s
(2)的设置,在开了Icache,Dcache,完成这个循环用了 5s,不开cache用了 20s
(3)的设置,在开了Icache,Dcache,完成这个循环用了 12s,不开cache用了 59s
现在,我有不少困惑:
i Atmel的例程为什么这样设置,对processor clock分析的方法对不对,
ii 2、3两种设置,CPUclock是相同的,为什么运行速度差这么多
iii 9200的速度可以到达 200MPIS,而最快的第2种设定,1S只做了33,600000条指令,33M的速度?
请高手指点,万分谢谢!
有奖活动 | |
---|---|
“我踩过的那些坑”主题活动——第002期 | |
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |