Le jeudi 8 avril, Frédéric Mantegazza a écrit :
> Question peut-etre idiote, mais comment peut-on acceder a la memoire
> directement dans un programme en C, via un pointeur ? Toutes mes tentatives
> se soldent par un Segmentation Fault.
En C tu n'accèdes directement qu'aux adresses virtuelles. Si l'adresse
que tu utilises n'est pas mapée par le MMU, tu as un Segmentation Fault.
> Je suppose qu'on doit demander au noyau l'autorisation pour le faire, mais je
> n'ai pas trouve... Ou alors, est-ce a dire qu'on est *oblige* de passer par
> un driver, comme /dev/mem (pour lequel je ne trouve pas de doc qui dit
> comment se fait l'acces: 8bits, 16bits, 24 bits ou 32 bits) ?
Essaye un mmap. Lu sur /usr/src/linux/Documentation/fb/framebuffer.txt :
As you already know, a frame buffer device is a memory device
like /dev/mem and it has the same features. You can read it,
write it, seek to some location in it and mmap() it (the main
usage). The difference is just that the memory that appears in
the special file is not the whole memory, but the frame buffer
of some video hardware.
Le passage qui me semble important est « mmap() it (the main usage). »
--
Edgar Bonet Maison : 04 76 21 29 16 Bureau : 04 76 88 10 96
3 rue Jean Prévost Mobile : 06 77 19 79 39 Fax : 04 76 88 11 91
38000 Grenoble guilde@??? www.edgar-bonet.org