該部分的代碼比較簡單,如下:
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 閱讀(345)
評論(0) 編輯 收藏 引用 所屬分類:
操作系統