该部分的代码比较简单,如下:
1 //设置时钟中断发生的频率
2 //默认HZ为100,在编译内核前可自行调整
3 static void set_clock_freq()
4 {
5 out_byte(TIMER_MODE, SQUARE_WAVE);
6 out_byte(COUNTER0, (uint8)(TIMER_FREQ / HZ));
7 out_byte(COUNTER0, (uint8)((TIMER_FREQ / HZ) >> 8));
8 }
9
10 void init_clock()
11 {
12 boot_heartbeat = 0;
13 set_clock_freq();
14 install_int_handler(CLOCK_IV, (void *)int_clock);
15 enable_hwint(CLOCK_IV); //打开8259A主片的irq0,以允许时钟中断
16 }
该文件功能就是设置时钟中断频率为HZ(默认100),然后安装时钟中断句柄为int_clock,这样当时钟中断发生时会进入时钟中断处理程序int_clock。然后打开主8259A的irq0,以允许接受时钟中断(因为我们初始化8259A的时候把所有中断都屏蔽掉了)。
posted on 2012-02-14 19:41
myjfm 阅读(338)
评论(0) 编辑 收藏 引用 所属分类:
操作系统