la programmation des peripheriques

la programmation des peripheriques - C++ - Programmation

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 :pfff:  ça sera  
 
superbe si on me donne un site expliquant ce genre de programmation  
 
merçi d'avance
A++

Reply

Marsh Posté le 11-07-2005 à 16:26:50   

Reply

Marsh Posté le 12-07-2005 à 11:27:13    

Recherche des cours architecture informatique.

Reply

Marsh Posté le 12-07-2005 à 11:36:55    

Reply

Marsh Posté le 12-07-2005 à 11:59:59    

C'est pas lié au C++ mais à l'OS.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh 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

Reply

Marsh Posté le 16-07-2005 à 16:27:24    

oui mais il faut connaitre l'architecture avant de se lancer dans la programmation.

Reply

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  !

Reply

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é.

Reply

Marsh Posté le 18-07-2005 à 00:22:28    

superbe merçi pour ton aide bigears   !!!

Reply

Marsh Posté le 18-07-2005 à 01:43:46    

utilise pas des fonction au hasard, tu risquerai de cramer ton matos :o. 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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed