个人感觉,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的速度?
请高手指点,万分谢谢!
打赏帖 | |
---|---|
【Zephyr】使用Zephyr外设初始化过程解析被打赏30分 | |
【S32K146】S32DS watchdog 配置使用被打赏20分 | |
【Zephyr】使用 IAR 调试 Zephyr 镜像被打赏20分 | |
赚取电动螺丝刀+电源电路理论知识分享1被打赏5分 | |
我想要一部加热台+分享常见运算放大器电路的应用被打赏5分 | |
【Zephyr】MCXN947 Zephyr 开发入门适配shell被打赏20分 | |
我想要一部加热台+常见的MOS管驱动电路被打赏5分 | |
【我要开发板】6.联合MATLAB记录数据被打赏50分 | |
【换取手持数字示波器】MicrochipMPLABHarmony框架下串口调试printf输出记录被打赏29分 | |
【瑞萨RA2E1开发板】:使用ADC功能实现位移传感器采集方案被打赏20分 |