Bonjour,
je suis électronicien et familier des langages C++, VB et Assembleur 8051
grâce au petit programme porttalk, j'ai conservé mes programmes d'accès aux ports de la machine et cela fonctionne très bien sous XP.
mes programment écrivent directement sur le port, en d'autre termes, c'est un seul programme qui fait du bas niveau jusqu'à l'interface utilisateur.
cela présente plusieurs inconvénients :
- lenteur du débit de données
- manque de précision dans le timing des impulsions électriques envoyées sur le port, risque de voir le programme ralentit par le PC ce qui aboutit à un dysfonctionnement du montage
- bas et haut niveau dans le même programme -> pbs de sécurité
- bas et haut niveau dans le même programme -> aucun langage n'est adapté pour faire cela
je souhaites donc aller plus loin et créer un "driver"; en fait mes applications seraient coupées en deux parties :
- un programme bas niveau (le driver) taillé sur mesure pour gérer le transfert de données entre le PC et le montage électronique
- un programme haut niveau : l'application utilisateur
Le programme haut niveau ne ferai que d'envoyer des consignes évoluées (par ex un bloc de xxx octets à graver dans une puce) au programme bas niveau qui lui générai scrupuleusement les trames à envoyer sur le port.
De petite taille et avec une priorité d'exécution élevée, le driver consommerai peu de ressources systèmes et ne serai pas perturbé par un ralentissement de windows. De plus le driver pourrai gérer des interruptions correspondant au montage piloté.
Dans un premier temps je compte mettre au point un driver "générique", que j'adapterai ensuite pour chaque montage, c'est à dire résoudre les pb suivants :
- écriture sur le port
- communication entre le driver et le programme haut niveau
- intégration du driver dans windows, obtenir les résultats escomptés en terme de rapidité, de précision et d'immunité au ralentissement
Je vous demande quelques conseils pour "débroussailler" mon projet et partir dans la bonne direction :
- quel(s) langages choisir
- quel(s) implémentation choisir (dll/exécutable, mode de communication driver/app)
- quel(s) outils de développements préférer
- quel(s) docs ou exemples de codes sources consulter
Je souhaites privilégier une solution utilisant des logiciels libres (par ex. nasm) et gratuits (application utilisateur faite avec VB, VC++ express ou autre)
Merci
Partager