Lire des adresses de la RAM (prog en C)
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Lire des adresses de la RAM (prog en C)



  1. #1
    AmigaOS

    Lire des adresses de la RAM (prog en C)


    ------

    Bonjour

    J’ai essayé de faire un petit programme qui lit octet par octet la mémoire RAM de mon PC et qui à partir de ces donnés écris un fichier image BMP 256c. Donc à chaque octet différent (256) est associer une couleur différente.
    Mais j’ai 2 problèmes :
    1) Si je dépasse les 300*300 pixels donc 90000 octets de lu pour ça, le programme plante de suite et l’image fait 0 octets.
    2) Je n’arrive pas à faire marcher le programme pour qu’il lise des valeurs depuis l’adresse 0 :

    Code:
    char *byte ;
    …
    byte = 0;  // Si je met ça, le programme ne marche plus. Sinon il fonctionne.
         for ( i=0 ; i<x ; i++ ) for ( j=0 ; j<y ; j++ )    // x et y sont la longueur et largeur de l’image
             {
                 byte = byte+1 ;
                 fwrite(byte, 1, 1, fichier) ;
             }

    -----

  2. #2
    Jack
    Modérateur

    Re : Lire des adresses de la RAM (prog en C)

    Tu ne dois pas avoir le droit d'accéder à l'adresse 0.
    De toutes manières, les adresses accessibles par ton application ne correspondent pas aux adresses physiques de la RAM, mais aux adresses logiques de ton processus car il y a une MMU derrière tout ça.

    A+

  3. #3
    invitef4b9b7e8

    Re : Lire des adresses de la RAM (prog en C)

    Ton programme n'a pas accès à l'ensemble de la mémoire adressable. C'est le système d'exploitation en conjonction avec le hardware qui définit à quelle zones de mémoire un processus peut accéder. Selon les OS, une partie de tes adresses peuvent être interdite à la lecture, par exemple lorsqu'elles n'ont pas été alloué par ton programme (ça permet de rattraper des erreurs), ou parce qu'elles contiennent des données liées à l'OS etc... pour compliquer le tout, la mémoire visible par ton programme ne correspond pas directement à la RAM mais à un espace d'adressage virtuel, l'OS et le MMU se charge de faire le lien entre les deux.

    Peut-être qu'il est possible de déterminer à l'aide d'une fonction de librairie quelles sont les zones de mémoires lisibles et te restreindre à ces zones pour ton affichage.

Discussions similaires

  1. adresses des caractères erronnées pour LCD 2x20
    Par invite0fa82e56 dans le forum Électronique
    Réponses: 21
    Dernier message: 06/06/2007, 10h40
  2. [Fouilles] Adresses des chantiers
    Par inviteb7aee803 dans le forum Archéologie
    Réponses: 10
    Dernier message: 06/09/2006, 21h10