[C++] Programmation des interruptions matérielles

Programmation des interruptions matérielles [C++] - C++ - Programmation

Marsh Posté le 24-08-2001 à 11:02:33    

Sous win95 et borland C++ 5.0, je voudrais pouvoir affecter une routine d'interruption à une irq matérielle. Je vois a peu près comment les interruptions fonctionne, ms j'arrive pas à les programmer.
Les fonctions que g trouvé me permettant de le faire (void interrupt mtit(), oldhandler()...) ne fonctionnent que sous les vieux compilateurs.
J'ai bien essayé l'aide API, ms pas plus de succé...
Alors si qq1 avait 1 ptite id à ce sujet, qu'il se montre!!
merci

Reply

Marsh Posté le 24-08-2001 à 11:02:33   

Reply

Marsh Posté le 24-08-2001 à 12:49:08    

honnètement je ne sais pas du tout mais puisque je vois ke tu as l'air calé en c++ système, pourrais-tu jeter un oeil à mon topic stp parce que toi tu dois pouvoir m'aider.....
MERCI et encore désolé pour ton pb....

Reply

Marsh Posté le 24-08-2001 à 14:15:19    

electricblue  
Voici quelques precisions
 
1 - Ca marche sur des vieux compilo car il produisent du code "16 bits" (mode réel), Windows enferme les programme 16 bit dans une sorte de machine virtuelle pour programme 16 bits , un peu comme de l'émulation et la ça peut marcher (et encore c pas sur), de plus ce n'est pas recommandé ni adapté pour le systeme.
 
2 -  Windows fonctionne en mode protégé (32 bits), et protège tous ce qui a attrait au systeme (I/O, int ...), pour éviter que n'importe quel programme aille mettre la pagaille dans le systeme. Donc il n'existe pas de fonction "standard" (SDK Platform ) chez MS pour aller bidouiller les interruptions matérielles
 
3 - Par contre il existe le DDK (Driver Development Kit) chez ms qui est  plus adapté pour ce genre de chose (mais plus chaud que la prog classique sous Win). Malheureusement je ne peux t'en dire plus car je ne m'y suis pas encore frotté
 
Peut être qu'avec plus d'info sur ce que tu veux faire ça m'aiderait.
 
En tous cas bon courage !

Reply

Marsh Posté le 24-08-2001 à 14:20:57    

Merci pr ces eclaircissements.
En fait, c'est une sorte de driver. Sur une interruption (irq7, cette du port //) le driver doit effectuer certaines operations suivant la valeur reçue.
En gros c pr eviter de faire une boucle d'attente qui bouffe le tps CPU.

Reply

Marsh Posté le 24-08-2001 à 17:42:56    

Je suis allé voir les DDK sur le site de msdn, et manque de po le DDK pr win95 est pas gratuit (alors que ceux de win98 et NT4 le sont)  :(  :(  :(  
Ya pas d'autres moyens pr utiliser les interruptions???

Reply

Marsh Posté le 27-08-2001 à 09:46:40    

1 p'tit up.
C'est vraiment important (même urgent) pr moi cette histoire.

Reply

Marsh Posté le 28-08-2001 à 02:33:24    

je ne pense pas que tu puisse utiliser les interruption materielles sous W9x autrement qu'au travers d'un driver. Et pour ca il te faut le ddk. A defaut, prend celui de 98. Je ne suis pas expert en prog sys brute mais d'apres mes souvenirs, il doit y avoir dans un coin le VPICD, c'est le controleur virtuel d'interruption qui est en charge du dispatching des int aux autres vxd.
 
regarde la doc sur le Programmable Interrupt Controller, qui te dit comment metre en place des callback pour intercepter des irq.
 
C'est pas une partie de plaisir, ni de rigolade (en plus je crois que tu dois sortir l'assembleur pour degomer la bete). C'est pour ca que si tu peux eviter, evite.  
 
Je me rappelle qu'a une epoque j'avais recupere un soft qui facilitait l'ecriture des drivers (ca creait plus ou moins un projet vide qu'il fallait adapter aux besoins). Malheureusement je me rappelle plus trop du nom mais tu peux essayer google avec un peu de chance...
 
ah oui, l'assembleur, il est filé gratos avec le ddk de 98 donc si t'en as besoin, ca s'appelle masm, et sur le site de crosoft tu dois pouvoir telecharger une maj gratuite, utile aussi si tu veux recompiler virtual dub (au grand complet) par exemple.

Reply

Marsh Posté le 28-08-2001 à 10:02:39    

OK merci, c bien noté je vais voir ce que je peux faire.
Sinon côté fonctionnement logique (PIC, mask...) je vois plus ou moins comment faire, reste plus ka programmer ça  :??:  
Merci encore et je vous tiens au courant si j'ai du nv.

Reply

Marsh Posté le 31-10-2007 à 23:14:51    

UP

Reply

Marsh Posté le 31-10-2007 à 23:28:15    

quoi up ? le topic a 6 ans :sarcastic:

Reply

Marsh Posté le 31-10-2007 à 23:28:15   

Reply

Marsh Posté le 31-10-2007 à 23:30:51    

J'ai le même problème c'est tout

Reply

Marsh Posté le 01-11-2007 à 00:13:14    

mais bien sur, duss... quand tu auras fini de remonter des vieux topics, hein... en attendant, ban

Reply

Sujets relatifs:

Leave a Replay

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