trouver une Adresse RAM
Hors ligneShinriel Le 09/09/2006 à 19:16 Profil de Shinriel Configuration de Shinriel

Bonjour,

Dans le cadre d'une création d'une interface via mon ordinateur et des moteurs, led ou autre, je recherche comment avoir le tableau de toute les adresses de ma Mémoire Vive.

On m'a déjà dit qu'on pouvait recuperer ce "tableau" avec les différentes adresses, et savoir à quel application elle étaient associées, mais après quelques recherches je n'ai rien trouvé.

C'est pour celà que je me tourne vers vous,
en espèrant qu'une personne aura la solution.


Je remerci ceux qui passeront sur ce poste.
Et encore plus ceux qui trouveront ma réponse.
Hors ligneTigene Le 09/09/2006 à 19:39 Profil de Tigene Configuration de Tigene

Viconaute Modérateur
salut

ce n'est pas plutot les adresses des sorties dont tu as besoin ?

j'ai fait cela, il y a qq années, et j'avais les adresses des sorties de l'interface pour commander divers relais, commutateurs et appareils de mesures.

@+
--

Ce n'est pas parce qu'on a quelque chose à dire, qu'il faut forcément l'ouvrir

Hors ligneShinriel Le 09/09/2006 à 20:02 Profil de Shinriel Configuration de Shinriel

Rebonjour,

Enfaite je recherche les entrées et sorties, je m'explique :

Je n'ai qu'un seul exemple mais il montre bien se que je veux faire,


Quand on branche une prise parrallèle sur l'ordinateur, 3 adresses au niveaux de la ram y sont dédié
(adresse en hexadecimale)
-378 qui est faite pour l'ecriture
-379 qui permet la lecture de donnée
-37A qui permet l'écriture et la lecture


Par exemple on peut entre autre y brancher une imprimante, celle-ci reçoit les données à imprimer, mais peut aussi renvoyer des erreurs, comme dire qu'elle est déjà utilisée par un autre utilisateur, qu'il n'y a plus de papier, etc ....

Pratique pour renvoyer la valeur d'un capteur.

à bientôt.
Hors ligneIonace Le 10/09/2006 à 18:27 Profil de Ionace Configuration de Ionace

Salut !
sans vouloir dire de betise tu pourrais peut etre te tourner du cote de l'asm pour ce genre de chose tout en gardant a l'esprit que connaitre toutes les adresses de ta ram peut faire planter ton programme si tu pars a leurs recherches par scan. 32 bits oblige, il risque d'y avoir une violation d'acces. Desole de ne peut pas pouvoir t'aider d'avantage...

@++ et bon courage
Hors ligneShinriel Le 11/09/2006 à 22:39 Profil de Shinriel Configuration de Shinriel

C'est une idée, mais elle prendrais du temps

j'ai trouvé un site qui en parle brievement n'étant pas son interêt premier
Premier lien cliquable


(
ce site explique bien comment utiliser le port parallèle :
Deuxième lien cliquablep

j'ai pas eut le temps de lire mais il a l'air interresant : Troisième lien cliquable
)

Je vous tiens au courant de toute façon.
Hors ligneIonace Le 16/09/2006 à 16:09 Profil de Ionace Configuration de Ionace

Salut !

Ah mais c'etait pour ton  port parallele ?? Z'avais pô compris ... en theorie si t'es sous windows tu utilise la fonction createfile() et au nom du fichier, au lieu de lui mettre une variable contenant un string, tu tapes directement sa pour ouvrir le port com = > CreateFile("COM1", blabla... pareille pour le com2 ect .. faudrait tester avec "LPT1", "LPT2" ect..
Apres c'est simple, createfile() te renvoi un handle vers lequel tu peut ecrire avec les fonctions WriteFile() et lire avec ReadFile(). Dis moi csi sa amrche (sa pourra toujours me servir pour plutart :p)

Voici quelques liens :
http://www.cppfrance.com/codes/ECRITURE-LECTURE-PORT-PARALLELE_30849.aspx
http://www.cppfrance.com/codes/PORT-PARALLELE-SOUS-WIN-XP_21060.aspx
En esperant que sa te serves (cherche bien sur cppfrance, y en a un floppe de prog dans ce genre ...)

@++

PS : sous linux c'est encore plus simple car tu n'as qu'a utilsier la fonction fopen() sur un fichier dans /Dev/ .. par contre je sais plus lequel (dsl) mais je sais ou le trouver, si sa t'interesse, je peut te montrer des exemples de codes !
Hors ligneShinriel Le 18/09/2006 à 20:21 Profil de Shinriel Configuration de Shinriel

//Lecture:
unsigned short commande;
commande=_inp(890); /* Registre de commande */
donc on peut utiliser ce registre comme entrée

//écriture:
void ecritPRN(int bit)
{
     _outp(888,bit);
}


Celon ton deuxieme lien.

Merci de ton aide, sa n'a pas l'air compliquer à utiliser si on utiliser ces commandes ;)


en tout cas une chose que je n'avais pas comprit, c'est que la plus part des commandes demandes une valeur Decimale de l'adresse.
Car bêtement je cherchais une commande demandant leur valeur hexadecimale.

j'ai pas beaucoup de temps libre en ce moment, mais je vais bien trouver un jour, un peu de temps...
Hors ligneIonace Le 19/09/2006 à 20:31 Profil de Ionace Configuration de Ionace

Salut !

Attention a ces commandes qui touchent au registres, elles dependent fortement du compilateur. POur mettre une valeur en hexa, fais la suivre par un 0x !

exemple => 10 = 0xa

@ plouche !
Hors ligneShinriel Le 19/09/2006 à 23:31 Profil de Shinriel Configuration de Shinriel

Merci encore
Hors ligneIonace Le 22/09/2006 à 16:48 Profil de Ionace Configuration de Ionace

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels