Pergunta

Atualmente, estou lidando com dois dispositivos conectados ao barramento i2C dentro de um sistema incorporado executando o Linux. Estou usando um driver existente para o primeiro dispositivo, uma câmera. Para o segundo dispositivo, implementei com sucesso um programa do UsersPace com o qual posso me comunicar com o segundo dispositivo. Até agora, ambos os dispositivos parecem coexistir felizes. No entanto, quase todos os dispositivos I2C têm seu próprio módulo de driver. Assim, estou me perguntando quais são as vantagens de um módulo de driver. Eu dei uma olhada no seguinte tópico ...

Quando devo escrever um módulo Linux Kernel?

... mas sem conclusão.

Assim, qual seria a vantagem de escrever um módulo de driver I2C sobre uma implementação do espaço de usuários?

Atenciosamente, Stefan

Foi útil?

Solução

Na sua situação, você provavelmente não tem muito uso para um módulo de driver I2C. Se não estiver quebrado ....

A principal razão pela qual eu incluiria um driver do módulo de kernel é quando outro driver do modo de kernel é um cliente I2C ou se beneficia da integração rígida com o kernel. Um exemplo disso é o codec de áudio WM8350, que é comunica dados de áudio em um barramento de áudio (i2s ou AC97) e configuração (por exemplo, nível de volume) sobre I2C.

Um IC de gerenciamento de energia é outro exemplo de chip que você deseja que o kernel controlasse diretamente.

Finalmente, observarei que existem vários tipos de drivers I2C. (Consulte Documentação/I2C/Resumo.) Em alguns casos, seu hardware pode exigir um motorista do adaptador de barramento I2C, para ensinar como se comunicar sobre o I2C. Isso exigiria um driver do modo de kernel.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top