嵌入式操作系统
陈香兰
Fall 2009
Linux中的时钟和定时测量
定时测量
Linux内核提供两种主要的定时测量
获得当前的时间和日期
系统调用:time(), ftime()以及gettimeofday()
维持定时器
settimer(), alarm()
定时测量是由基于固定频率振荡器和计数器的几个硬件电路完成的
RTC
PIT
等等
6/26/2017
嵌入式OS
3
Linux的计时体系结构
更新自系统启动以来所经过的时间
更新时间和日期
确定当前进程的执行时间,考虑是否要抢占
更新资源使用统计计数
检查到期的软定时器
6/26/2017
嵌入式OS
4
计时体系结构中的关键数据结构和变量
系统时钟sys_timer(arm的)
时钟中断发生源
参见sys_timer数据结构
Jiffies变量
时钟源
Xtime变量
6/26/2017
嵌入式OS
5
include/asm-arm/mach/
是系统的时钟中断源
提供了与具体时钟中断源的接口
注册方法:
6/26/2017
嵌入式OS
6
Jiffies变量
记录系统自启动以来系统产生的tick数
每次时钟中断+1
关于jiffies_64
6/26/2017
嵌入式OS
7
时钟源
时钟源抽象
参见数据结构clocksource
是系统时钟源,定义了系统时钟源的接口
缺省时钟源
kernel/time/
include/linux/
6/26/2017
嵌入式OS
8
注册时钟源:
clocksource_register
clocksource_list
按rating排序
kernel/time/
6/26/2017
嵌入式OS
9
例如mach-at91提供时钟源clk32k
arch/arm/mach-at91/
6/26/2017
嵌入式OS
10
嵌入式OS.ppt 来自淘豆网m.daumloan.com转载请标明出处.