Пример #1
0
void local_apic_timer_init(void)
{
  local_apic_timer_calibrate(128);
  /* set periodic mode (set bit to 1) */
  local_apic->lvt_timer.timer_mode |= (1 << 0);
  /* enable timer */
  local_apic_timer_enable();

}
Пример #2
0
static void local_apic_timer_init(uint8_t vector)
{
  apic_lvt_timer_t lvt_timer=local_apic->lvt_timer;

  i8254_suspend(); /* suspend general intel timer - bye bye, simple and pretty one, welcome to apic ...*/

  /* calibrate timer delimeter */
  __local_apic_timer_calibrate(16);
  /*calibrate to hz*/
  local_apic_timer_calibrate(1000);
  /* setup timer vector  */
  lvt_timer.vector=vector; 
  /* set periodic mode (set bit to 1) */
  lvt_timer.timer_mode = 0x1;
  /* enable timer */
  lvt_timer.mask=0x0;
  local_apic->lvt_timer.reg=lvt_timer.reg;
  ar_registerInterrupt(LOCAL_TIMER_CPU_IRQ_VEC, &timer_callback, "APICtimer");
}