随笔-80  评论-24  文章-0  trackbacks-0
该部分的代码比较简单,如下:

 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)  编辑 收藏 引用 所属分类: 操作系统

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理