Développement de drivers

Qu’est-ce qu’un driver ?

Un driver est un logiciel qui contrôle un composant matériel spécifique. Il permet à ce matériel de fonctionner dans le cadre d’un système informatique. D’un côté, le driver interagit avec l’interface matérielle fournie par le composant. De l’autre, il présente une abstraction du périphérique au système d’exploitation ou aux logiciels applicatifs. Cela permet aux applications d’exploiter le matériel de manière bien plus simple que si elles devaient interagir directement avec celui-ci.

Les principaux défis du developpement de drivers

coding blue

Implémentation

Les drivers sont étroitement liés non seulement au matériel spécifique qu’ils contrôlent, mais aussi au système d’exploitation et à l’architecture du système informatique avec lesquels ils doivent fonctionner. Cela signifie qu’un haut niveau de connaissance est nécessaire pour développer un driver de qualité.
long term maintenance blue

Robustesse

Étant donné que les drivers accèdent à des couches matérielles très basses, ils fonctionnent souvent avec un niveau de privilège élevé au sein du système d’exploitation. Cela impose une grande responsabilité au développeur, qui doit garantir une robustesse maximale du logiciel.
data blue

Cohérence et intégrite des données

Selon le système d’exploitation utilisé, les drivers doivent souvent gérer à la fois des requêtes issues du code applicatif et des événements matériels externes, généralement signalés par des interruptions traitées ensuite par le système d’exploitation et transmises au driver concerné.

Éléments clés à prendre en compte pour le développement de drivers

Connaissance du matériel

Il est essentiel de disposer de toutes les spécifications du matériel que le driver devra contrôler. Ces informations sont généralement fournies par le fabricant sous forme de datasheet. Une bonne connaissance générale de l’architecture et du matériel est également indispensable.

Concepts OS

Les drivers fonctionnent généralement en étroite collaboration avec le système d’exploitation. Les développeurs de drivers doivent avoir une connaissance approfondie des concepts liés aux systèmes d’exploitation, y compris celui qui est visé, ainsi que des frameworks de développement de drivers qu’il propose.

Outils de débuggage

En raison du niveau de privilège élevé dans lequel les drivers s’exécutent, leur débuggage peut s’avérer particulièrement complexe lorsque les choses ne fonctionnent pas comme prévu. Il est donc crucial de posséder de solides compétences en débuggage. Certains systèmes d’exploitation proposent des outils pour aider dans cette tâche, mais savoir improviser reste indispensable.
Firstkind medical device

SUCCESS STORY

Optimisation des couches applicatives et des drivers pour les équipements médicaux de Firstkind

Firstkind a fait appel à Witekio pour résoudre un problème sur une application qui multiplexait quatre canaux UART sur un seul bus CAN, et inversement. L’application manquait de fiabilité et subissait des dépassements de mémoire tampon (buffer overrun), même sous de faibles charges de données. Elle n’était pas robuste. La solution a consisté à modifier les couches applicatives et les drivers pour améliorer leur efficacité, en utilisant le DMA et une gestion des interruptions plus optimisée. Résultat : le système peut désormais fonctionner en continu sous de fortes charges de données, sans aucune erreur.

Nous développons des drivers depuis des décennies

Witekio dispose de plusieurs ingénieurs logiciels hautement qualifiés, capables de travailler sur le développement de drivers pour différents systèmes d’exploitation (OS).

Notre expertise en logiciel embarqué

IoT-Ecosystem-Security-1

Votre partenaire de confiance en logiciel embarqué, applications et connectivité

flag_line

4 Pays

4 pays

iso_27001_02-1024x704

certifies ISO 27001

certifies ISO 27001

Avnet_logo

Fortune 500

Fortune 500

Contactez nous