la programmation des peripheriques - C++ - Programmation
Marsh Posté le 12-07-2005 à 11:59:59
ReplyMarsh Posté le 12-07-2005 à 22:01:43
selon mes infos je crois qu'on peut programmer un
peripherique en asm mais aussi en C
Marsh Posté le 16-07-2005 à 16:27:24
oui mais il faut connaitre l'architecture avant de se lancer dans la programmation.
Marsh Posté le 17-07-2005 à 22:02:30
je suis tout a fait d'accord avec toi ,je connais
l'architecture du l'ordinateur , mon probleme est de
trouver le lien qui me permetra me lancer dans la
programmation !
Marsh Posté le 17-07-2005 à 23:52:39
je n'ai pas trouvé de lien direct qui pourraient t'intéresser, il y a déja ce cours d'architecture(intéresse toi surtout a la partie concernant les interruption matrérielles et logicielles)
http://kiwi.emse.fr/JJG/ASI/ASI99-6.PPT
a la base il faut utiliser l'assembleur, mais le C permet de travailler sur les registres...
La suite je te sort ca de tête, si je récupère mes cours d'archi je te donneré plus de détails:
C'est dans <dos.h> , tu a les structures REGS et SREGS
#include <dos.h>
union REGS r;
r.h.ah=0x07
r.h.dx=0xFFFF;
int86(0x21, &r, &r);
c'est un exemple bidon certainement truffé d'erreurs.
En gros dans ce cas, tu mets 07h dans le registre ah, puis 0FFFFh dans dx, puis on apelle l'exécution de la fonction spécifiée dans ah(ici 07h) de l'interruption 21h.
pour utiliser SREGS, c'est pareil sauf qu'il faut utiliser int86x() à la place.
sinon je te cite pèle mèle setvect(), getvect() pour les vecteurs d'interruption (des unsigned char je crois)
void interrupt nom_du_sous_programme_d_interruption()
{}
pour créer un sous programme d'interruption(qui s'exécute quand le systeme capture un IRQ.
Un programme dois toujours faire cela:
on sauve l'ancien vecteur(getvect),on défini le nouveau, puis lorsque le programme est fini, on restaure la derniere interruption.
J'arrete mes explications(mais je les efface pas , ca peux toujours servir...)car je viens de trouver ce lien très interressant et qui réponds certainement a toutes tes questions:
http://www.tsi.enst.fr/~blanchet/livres/MSDOS_PC.pdf
Pour des exemples plus concret je viens de trouver également
http://www-gtr.iutv.univ-paris13.f [...] hitecture/
tout y est expliqué.
Marsh Posté le 18-07-2005 à 01:43:46
utilise pas des fonction au hasard, tu risquerai de cramer ton matos . Trouve un lexique de toutes les fonctions d'interruption existante pour pas faire de bétises. Surtout évite d'écrire sur des périphériques à l'arrache, ton matos aimera pas du tout.
Marsh Posté le 11-07-2005 à 16:26:50
salut !!!
je programme depuis 2 ans en C++ ( sous Visual C++) et je voudrais
ameliorer mes capacites c'est pourquoi j'ai decidé d'apprendre a
faire de la programmation des peripheriques le probleme c'est que
j'ai du mal a trouver des tutos dans ce domaine ça sera
superbe si on me donne un site expliquant ce genre de programmation
merçi d'avance
A++