Changes between Version 56 and Version 57 of Archi-1-TP10


Ignore:
Timestamp:
Jan 4, 2021, 8:31:54 AM (4 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archi-1-TP10

    v56 v57  
    616616* Le numéro du processeur est dans les 12 bits de poids faible du registre $15 (`c0_cpuid`) du coprocesseur système (à côté des registres `c0_epc`, `c0_sr`, etc.). Ajoutez la fonction `int cpuid(void)` qui lit le registre `c0_cpuid` et qui rend un entier contenant juste les 12 bits de poids faible.\\Vous pouvez vous inspirez fortement de la fonction `int clock(void)`. Comme il n'y a qu'un seul processeur dans cette architecture, `cpuid` rend toujours `0`.\\Ecrivez un programme de test (vous devrez modifier les fichiers `hcpu.h`, `hcpu.S` et `kinit.c`)
    617617
    618 
     618{{{#!protected
     619**hcpu.S**
     620{{{#!asm
     621.globl cpuid
     622cpuid:
     623    mfc0    $2, $15
     624    andi    $2, $2, 0xFFF
     625    jr      $31
     626}}}
     627**hcpu.h**
     628{{{#!c
     629/**
     630 * \brief     cpu identifier
     631 * \return    a number
     632 */
     633extern unsigned cpuid (void);
     634}}}
     635}}}
    619636== B2. Programme utilisateur mais exécuté en mode kernel
    620637