Le contrôleur DMA relève du système d'exploitation, et est fortement lié à la gestion interne du filesystem, etc. Bref, c'est beaucoup plus que d'écrire un pilote, ce qui n'est déjà pas trivial. Si tu utilises de l'IDE, utilises hdparm pour voir si tes disques l'utilisent par défaut.
Ensuite, tu peux faire du raw device. Avant, ça se fait en associant un /dev/raw/rawX à ton périphérique. Maintenant, c'est en passant l'option O_DIRECT à open().
Par contre, d'après ce que je lis, il semblerait que ce qu'il te faille, c'est du file mapping. Vois du coté de $ man mmap. C'est un appel système, donc en C, aisément encastrable dans du code en C++.
# File mapping
Posté par Obsidian . En réponse au message DMA en C++ ?. Évalué à 3.
Ensuite, tu peux faire du raw device. Avant, ça se fait en associant un /dev/raw/rawX à ton périphérique. Maintenant, c'est en passant l'option O_DIRECT à open().
Par contre, d'après ce que je lis, il semblerait que ce qu'il te faille, c'est du file mapping. Vois du coté de $ man mmap. C'est un appel système, donc en C, aisément encastrable dans du code en C++.
Bon courage.