Migration d'une application DOS -> Linux
Bonjour,
J'aimerais vous exposer un problème que je rencontre pour mon boulot.
Nous avons développé un logiciel de commande d'axes en temps réel. Celui-ci tourne sous DOS (v6.22) et il est écrit pour une partie en C, et pour la partie "temps réel" en assembleur.
La partie "temps réel" est en fait un calcul de trajectoire réalisé toutes les 10 µs, afin de pouvoir tenir un pseudo temps réel correct, nous inhibons complètement les interruptions matériels (instruction CLI) pendant les déplacements.
Nous aimerions faire évoluer ce logiciel en l'adaptant afin qu'il tourne sous Linux.
D'après ce que j'ai compris, il semblerait qu'il soit impossible d'inhiber les interruptions (ou appel système) sous Linux, en mode utilisateur en tout cas.
Quelles sont les solutions possibles :
- travailler en mode noyau (équivalent à l'écriture d'un driver) ?
- utiliser un noyau temps réel ?
- autres ??
Nous sommes loin d'être des spécialistes du monde Linux et nous ne savons pas vraiment par où commencer.
Merci pour vos conseils éclairés.
Migration d'une application DOS -> Linux
Bonjour Ben,
un des points que tu doits prendre en compte sous linux est que l'accès aux périphériques matériel depuis l'espace utilisateur est très limité et souvent fastidieux. Il me semblerait donc plus judicieux de porter cette application dans l'espace kernel, sous forme de module, cela te permettrait d'inhiber toutes les interruptions le temps du traitement et aussi d'accéder plus facilement aux ressources matérielles. Apres, qu'elle est la plateforme que tu utilise ? Station de travail, sytème embarqué ? Le traitement se fait-il sur interruption matérielles ou sur un IT timer ? Il faut que tu connaisses le temps de réaction de ton système. Tout cela te donnera déja une petite idée sur le choix ou non d'utiliser un noyau temps réel.
En espérant que cela t'avancera un petit peu.