Changes between Version 38 and Version 39 of Archi-1-TP11


Ignore:
Timestamp:
Dec 13, 2021, 3:13:18 PM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archi-1-TP11

    v38 v39  
    527527[115002778] EXIT status = 1
    528528}}}
     529{{{#!protected ------------------------------------------------------------------------------------
     530''
     531`kernel/harch.c`
     532{{{#!c
     533extern void arch_init (int tick, unsigned quantum);
     534}}}
     535`kernel/harch.c`
     536{{{#!c
     537static unsigned timer_quantum;
     538static void timer_init (int timer, int tick, unsigned quantum)
     539
     540    __timer_regs_map[timer].resetirq = 0;       // to delete previous untraited IRQ
     541    __timer_regs_map[timer].period =  tick;     // next period
     542    __timer_regs_map[timer].mode = (tick)?3:0;  // timer ON with IRQ only if (tick != 0)
     543    timer_quantum = quantum  % 100;             // %100 to avoid aberrant value
     544}
     545static void timer_isr (int timer)
     546{
     547    __timer_regs_map[timer].resetirq = 1;
     548    if (timer_quantum) {
     549        kprintf ("\n...%d : ", timer_quantum--);
     550    } else {   
     551        kprintf ("\nGame Over\n");
     552        exit(1);
     553    }
     554}
     555}}}
     556`kernel/kinit.c`
     557{{{#!c
     558void kinit (void)
     559{
     560    [...]
     561    arch_init (3*3500000, 10); // tick is about 1 seconde, quantum is about 30 secondes
     562    [...]
     563}
     564}}}
     565''
     566}}}
    5295671. Dans cet usage du TIMER, les ISR ne sont pas fatales, sauf la dernière. En utilisant le mode debug (make debug) et le fichier `trace0.S`, déterminez la durée en cycles du traitement par le noyau d'une IRQ du timer. Ce n'est pas exactement la même durée pour toutes les IRQ. Pour trouver cette durée, il va falloir réduire le tick pour que la simulation ne soit pas trop longue et retirer l'affichage `kprintf()` de l'ISR.
    530568{{{#!protected ------------------------------------------------------------------------------------
    531569''
    532 La durée mesurée est de l'ordre de 160 cycles.
    533 ''
    534 }}}
     570* La durée mesurée est de l'ordre de 160 cycles.
     571''
     572}}}