該部分的代碼比較簡單,如下:
1 //設(shè)置時(shí)鐘中斷發(fā)生的頻率
2 //默認(rèn)HZ為100,在編譯內(nèi)核前可自行調(diào)整
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,以允許時(shí)鐘中斷
16 }
該文件功能就是設(shè)置時(shí)鐘中斷頻率為HZ(默認(rèn)100),然后安裝時(shí)鐘中斷句柄為int_clock,這樣當(dāng)時(shí)鐘中斷發(fā)生時(shí)會進(jìn)入時(shí)鐘中斷處理程序int_clock。然后打開主8259A的irq0,以允許接受時(shí)鐘中斷(因?yàn)槲覀兂跏蓟?259A的時(shí)候把所有中斷都屏蔽掉了)。
posted on 2012-02-14 19:41
myjfm 閱讀(364)
評論(0) 編輯 收藏 引用 所屬分類:
操作系統(tǒng)