Changes between Version 2 and Version 3 of SujetTD0


Ignore:
Timestamp:
Jan 20, 2014, 11:01:22 PM (11 years ago)
Author:
jpeeters
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SujetTD0

    v2 v3  
    2323== 2. Accès aux registres mappés en mémoire ==
    2424
    25 Nous fonctionnons sur un système à mémoire virtuelle et dès lors l'accès aux registres mappés en mémoire nécessite des opérations particulières. En particulier, il est nécessaire de passer par l'appel utilisateur mmap, dont le prototype est le suivant:
     25Nous fonctionnons sur un système qui utilise un mécanisme de mémoire virtuelle et dès lors l'accès à certaines zones mémoires est protégé par le système d'exploitation, ici Linux. C'est le cas notamment pour les zones mémoires correspondant aux contrôleurs d'entrées/sorties. Néanmoins, un peut quand même accéder à ces zones mémoires grâce à l'appel système mmap, dont le prototype est le suivant:
    2626
    2727{{{
     
    3737L'appel système mmap permet de récupérer un pointeur vers une zone mémoire donnée en paramètres. A l'inverse, munmap permet de libérer l'association entre le pointeur fourni par mmap et la zone mémoire associée lors de l'appel à mmap.
    3838
    39 * Pourquoi faut-il passer par un appel système pour accèder aux registres mappés en mémoire ?
     39* Quel est l'intérêt ou le besoin de protéger les zones mémoires liées aux contrôleurs d'entrées/sorties ?
    4040
    41 Pour accéder aux entrées/sorties mappées en mémoire, on utilise le mapping configuré dans le noyau Linux. Ce mapping est accessible depuis le fichier /dev/mem.
     41Pour accéder aux contrôleurs d'entrées/sorties mappés en mémoire, on utilise le mapping configuré dans le noyau Linux. Ce mapping est accessible depuis le fichier /dev/mem.
    4242
    43 * Comment utiliser /dev/mem avec l'appel système mmap pour récupérer un pointeur vers une zone mémoire correspondante à un contrôleur d'entées/sorties (dans notre cas, le contrôleur GPIO) ?
     43* Qu'est-ce que le fichier /dev/mem ? Est-ce un vrai fichier ?
    4444
    45 * Sachant que l'adresse de base du contrôleur de GPIO est 0x20200000, quels serait le
     45* Comment utilise-t-on le fichier /dev/mem ?
    4646
    47 == 3. Création de structures mirroir d'un composant mappé en mémoire. ==
     47* Comment faire fonctionner ensemble les informations contenues dans le fichier /dev/mem avec l'appel système mmap ?
     48
     49* Sachant que l'adresse de base du contrôleur de GPIO est 0x20200000, quels serait le code C qui permettrait d'accéder aux registre GPFSEL0 ?
     50
     51== 4. Réalisation d'un programme pour faire clignoter une LED ==
     52
     53* Avec tout ce que vous avez appris jusqu'à présent, quelles seraient les grandes étapes pour réaliser un programme qui fasse clignoter une LED à une fréquence donnée ?
     54
     55* Quelles sont les fonctions C associées ?