个人感觉,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的速度?
请高手指点,万分谢谢!
关键词:
AT91RM9200
processor
频率
设