1. 你在配置完PLL寄存器后是否启动 idle();指令,如果不启动idle()质量,PLL配置值将不会生效。
这个有。
2. 27*16 = 432M ,你启用的地址其实内核定时器还是系统,如果是系统定时器,你的定时器工作在108M系统时钟下为何配置47081是定时1mS?
这个可能以前理解错了,Timer应该是用的是系统定时器SCLK,因而准确定时应该是用108000来定义1ms,或者是108*1024*1.024,这个还望高人指点?
但是目前只有上述数字的一半,这个又错在哪里呢?
3. 在进入中断和出中断时都会消耗大量的内核时钟,所以即使你定时1mS,以此中断时来计算内核时钟,也是不科学的,因为你忽略了进出中断消耗的大量时钟。
这个方法确实不好,按照你说的下面的方法试一下?
4. 如果你想计算你的内核运行多快,有一个很
简单的代码,写一个死循环的代码,随便运行什么,然后打开计算机的时钟,运行代码10S,停下代码,打开寄存器中内核寄存器的sysles寄存器,将两个32位的数据拼成一个64位的数据,然后将数据转为10进制,除以10S,得到的值就是你CPU每秒运行的次数,如果接近432 000 000 ,说明你的CPU工作在432M下。