Question

Je m'occupe actuellement de deux appareils connectés au bus I2C dans un système embarqué exécutant Linux. J'utilise un pilote existant pour le premier appareil, une caméra. Pour le deuxième appareil, j'ai mis en œuvre avec succès un programme d'espace utilisateur avec lequel je peux communiquer avec le deuxième appareil. Jusqu'à présent, les deux appareils semblent coexister avec bonheur. Cependant, presque tous les appareils I2C ont leur propre module de pilote. Ainsi, je me demande quels sont les avantages d'un module de pilote. J'ai jeté un coup d'œil au fil suivant ...

Quand dois-je écrire un module de noyau Linux?

... mais sans conclusion.

Ainsi, quel serait l'avantage d'écrire un module de pilote I2C sur une implémentation d'espace utilisateur?

Cordialement, Stefan

Était-ce utile?

La solution

Dans votre situation, vous n'avez probablement pas beaucoup d'utilisation dans un module de pilote I2C. Si ce n'est pas cassé ...

La principale raison pour laquelle j'incluais un pilote de module de noyau est lorsqu'un autre pilote de mode de noyau est un client I2C, ou bénéficie d'une intégration étroite avec le noyau. Un exemple de ceci est le codec audio WM8350, qui communique les données audio sur un bus audio (I2S ou AC97) et la configuration (par exemple le niveau de volume) sur I2C.

Un IC de gestion de l'alimentation est un autre exemple de puce que vous voudriez que le noyau contrôle directement.

Enfin, je noterai qu'il existe plusieurs types de pilotes I2C. (Voir Documentation / I2C / Résumé.) Dans certains cas, votre matériel peut nécessiter un pilote d'adaptateur de bus I2C, pour enseigner comment communiquer sur I2C. Cela nécessiterait un pilote en mode noyau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top