Bonjour à tous,
Je travail sur un programme qui necessite d'aller chercher des infos dans une zone memoire RDA (ram double acces) qui est accessible par la carte mere et par une carte PC104.
Cette zone possede une adresse physique.
Le probleme est que je n'arrive pas à declarer un pointeur sur le debut de cette zone afin d'aller y chercher mes structures de données.
j'ai lu quelques docs concernant mmap() sur /dev/mem, ou encore ioremap() mais j'avoue que là un peut d'aide serait la bien venue.
En vous remerciant.
# devmem2
Posté par neologix . Évalué à 5.
http://free-electrons.com/pub/mirror/devmem2.c
Pour plus d'informations sur MMIO/PIO, tu as ça :
http://free-electrons.com/doc/embedded_linux_kernel_and_driv(...)
section I/O memory and ports
[^] # Re: devmem2
Posté par Benjamin . Évalué à 2.
Je me suis basé sur le code du premier lien et j'arrive à acceder à ma carte PC104-plus.
donc Super !!!
# PC104 ? vraiment ? bon c'est vieux tout ca
Posté par TheBreton . Évalué à 2.
Je dis tout de mémoire, il faudra ce replongé dans le code des drivers isa pour verifier tout ce que je dis ci dessous.
Normalement soit la plage mémoire est courte et donc situé normalement par des accès IO. (et il faut utiliser inb,outb ou w) voir http://www.faqs.org/docs/Linux-mini/IO-Port-Programming.html
Soit la quantité est grande et il fallait la positionner l'adresse de la ram entre 14M et 16M.
Ensuite il fallait dire au kernel lors du boot time qu'une plage d'adresse physique etait reserve en lui passant l'option memmap en lui decrivant la zone d'exclusion.
Ensuite dans le module driver de la carte il fallait faire un ioremap
http://www.xml.com/ldd/chapter/book/ch08.html
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.