关于时钟请教……
最近看uboot的源码,发现下面的函数__attribute__((nomips16)) ulong get_timer(ulong base)
{
return mips_count_get() - base;
}
看到这里返回mips的conut。然后很奇怪,这个一个count是多少呢。然后我们经常说的滴答,那么一个滴答是多久呢?这个和cpu的主频又有什么关系呢?又何时间是什么关系呢?求大神指导……:roll: 木有人吗,求大神指导 :$竟然木有人吗 人呢{:yxh125:} 不是没有人,是你问问题的方式不太对。
你都没有把 mips_count_get() 函数展开,难道要别人为了回复你的帖子专门去看看源代码吗
我从这个函数名去猜,它应该就是读取 mips 的 count 寄存器。 mips 架构提供一对寄存器做 timer 接口,即 count 和 compare。
count 寄存器的值可能和 cpu 频率相关,也可能不相关,看具体 cpu 的实现。这些细节可以阅读 mips 手册卷三。
你们经常说的滴答可能说的是 linux 中的 tick,这个就是每隔一段时间的一个时钟计数。在一定时间内更新系统信息。在 NO_HZ 的配置下,又有一些区别。 嗯 per cpu的count寄存器,一般32位,也有专门的时钟源寄存器counter可能是全局的64位 runtest北京 amarant 发表于 2015-11-18 16:49 static/image/common/back.gif
不是没有人,是你问问题的方式不太对。
你都没有把 mips_count_get() 函数展开,难道要别人为了回复你的 ...
不好意思,第一次发帖子,不太熟悉。
__attribute__((nomips16)) static u32 mips_count_get(void)
{
u32 count;
asm volatile ("mfc0 %0, $9" : "=r" (count) :);
return count;
}
就是取了寄存器9的值。这样 请顶起来{:yxh36:} {:yxh34:} 表示木有人吗,anyONE?
页:
[1]
2