Bonjour à tous !
Dans le cadre d'un développement de drivers linux pour une carte d'acquisition video, j'ai besoin d'une grande zone mémoire en RAM. Pour ce faire, j'utilise l'horrible trick "mem=" dans les paramètres du boot.
Ensuite, je charge mon driver via insmod, je crée un noeud (via mknod) et, dans un programme, je teste l'accès à une zone mémoire que le driver a obtenu.
Le driver se base sur le code d'Alessandro Rubini (allocator.c). : http://www.ceng.metu.edu.tr/course [...] tor/README
Au niveau du code, l'utilisateur lance le programme, ce dernier effectue un open() puis un mmap().
Le problème est que l'accès à la zone fonctionne mais est horriblement lent (environ 30x + lent que si le buffer était déclaré en static dans le programme utilisateur).
Le code fourni est compilable je pense sans avoir la carte en question vu qu'il n'est nulle part question de cette même carte dans les drivers. Je suppose que les routines de Rubini sont correctes. Il y a donc le code source du dummy driver, les scripts shell que j'ai écrit pour le chargement et une application dummy...
Merci à toute personne pouvant m'aiguiller
http://users.cybernet.be/pyboulanger/dummydriver06.zip