Interruption timer compilateur c 32bit

Salut
Voila on a un petit souci .
on a un program en c qui est compilé par un compilateur 16bits .ça marche.
Maintenant on voudrait passer avec un compilateur 32bits mais les interruptions ne fonctionnent plus???
Auriez vous des infos sur des compilateurs 32 bits?
Est-il possible d’incrémenter une variable avec l’horloge du proc . ça éviterait d’utiliser les interruptions.
Merci de vos réponses. Toute info sera la bienvenue.

De mon point de vue, c’est pas tellement une question 16/32, c’est
plutot une question que sous DOS, on a acces a tout le materiel, INT
comprises, alors que ce n’est plus le cas sous linux ni sous windows
(XP et 2000/2003).

A noter que si tu utilises, sous dos encore, un compilateur de type
DJGPP en dos extented, tu n’as plus acces non plus aux interuptions ni
aux fonctions du BIOS (a moins que le compilo integre un wrapper, mais
ca m’etonnerais).

C’est quoi, les 2 compilo que tu utilises?

Hope this help.

LoneWolf

aaah les interruptions logiciels du DOS… c’etait l’bon temps, gamin.

On est revenu en 1992? C’est ca? J’ai rate une faille spatio-temporelle?

Precisions:
En fait c’est un programme qui tourne sur un pc industriel sous dos. (pentium 200mmx…)
Je ne connais pas le nom du compilateur qu’il utilise je vais lui demander.
Le but du programme est de faire du multi-taches en ‘’‘temps réel’’’.
On appelle des fonctions du style : Tache A toutes les 10ms
 Tache B toutes les 25ms
Tache C toutes les 150ms…
Merci

Si mes souvenirs son bon, a partir du moment ou ton proc est passer en mode reel 32bit, tes interuptions classiques (enfin celle que tu pourrais utiliser en mode prot’ 16bit) tu peux t’assoir dessus et tourner autour…

A moins de faire un hack pour passer en faut mode reel (je me rappels plus du nom du truc, mais le principe etait de faire croire au proc’ qu’il etait en mode 16bit alors qu’en fait il etait vraiment en 32bit, mais pas completement : oui je sais super claire, mais ca fait 6/7 ans que j’en ai pas fait alors bon hein voila quoi), la seul solution vraiment viable serait de reecrire l’appli pour qu’elle utilise des “interuption 32bit” (je mets des guillemets, parce que c’est pas vraiment des vrais interuptions et tout un tas de ptit details d’implementation…) ou une lib/api quelquonque pour faire son job.

sinon peut etre en reecrivant le brins sous un OS vraiment multitache.

en meme temps si c’est pour un “system ferme” qui tourne sur une machine super precise… est-ce que ca vaux vraiment le coup… je ne sais pas…

c’est l’inverse, c0unt0, mode reel en 16 bit et mode protege en 32 bits :P;;

Et sinon, je confirme, les INT logiciels en protege, tu te touches.

LoneWolf

Qui a encore des restes de programmation ASM sous DOS

Pour faire du temps réel en embarqué, il y a mieux que dos, QNX par exemple.

Ok bon ben ça s’annonce mal…
et pour la variable qui s’incrémente avec l’horloge du proc?
Quelqu’un connait-il un moyen de la récupérer?
Merci.

LoneWolf: Oui mais bon voila quoi hein bon aussi, faut avouer que je maitrise bieux mon asm mips ses dernier temps

sinon Pour Raoull, je propose
RDTSC

, a ne pas confondre avec DTC, qui va bien pour ce genre de truc, et devrais etre present sur a peu pres tout depuis le pentioum 150 (ou en tout cas je crois, et la Lone va encore me briser les *^^%%$# parce que lui il se rappel bien que nianianinia et pas moi )

5ug4r 3d1t : Je vous ai dit que j’etait en shteumeuleu aussi ? fix de liens

Ce message a été édité par c0unt0 le 11/03/2004

ehe mais nan, c0unt0, ca arrive les inversions

Je connaissais pas RDTSC, c’est sympa mais nettement moins pratique a
utiliser que l’interruption logicielle du timer: Par defaut, on a une
interuption 18 fois par secondes, et cette frequence peut etre modifier
(mais il faut aussi modifie un facteur temps, parce que sinon,
l’horloge du PC va plus vite). Evidement, ca marche qu’en mode reel.

Pour RDTSC, je ne sais pas si c’est dispo en mode protege, c’est pas
note dans la doc de c0unt0…

Enfin pour moi, c’est plus propre a mon sens de passer par les INTs que
par la lecture periodique d’un compteur, mais bon… Je m’y connais pas
trop en temps reel.

LoneWolf

Tiens, ca me plairait bien, de faire du temps reel.

Rooooooooh, tu te souviens pas ? Vraiment pas ? Ta mémoire flanche ?
Tu te ferais pas un peu vieux toi ?
Bon ok…
Le grand expert français du flat real mode était notre petit camarade Simon. Je crois même qu’il avait réussi à l’implémenter dans Raven, qui était un jeu 100% ASM… Joie.

Antoine

Merci beaucoup. On va voir ce que ça donne.