Nwlapcug.com


Come sviluppare driver di dispositivo

Come sviluppare driver di dispositivo


Un driver di periferica è un pezzo di software che semplifica l'interazione tra i programmi di applicazione e un dispositivo hardware collegato al computer. Un driver di periferica è sia di hardware che di dispositivo specifico. In alcuni casi, l'implementazione di un driver può essere separato in livelli logici e fisici, permettendo una parte del codice deve essere condivisa da una simile classe di dispositivo, ad esempio una stampante o un monitor. Il sistema operativo (OS) definisce i meccanismi specifici che consentono alle applicazioni di conoscere la disponibilità e le capacità di un dispositivo hardware e integrano le sue caratteristiche in comportamenti di programma.

Istruzioni

1

Studiare i manuali che descrivono i meccanismi forniti dal dispositivo hardware per controllare le sue caratteristiche. Interazioni in genere assumono la forma di segnali che eseguono il mapping ai comandi che producono comportamenti supportati.

2

Imparare le basi della scrittura di un driver di periferica per il sistema operativo di destinazione. Questo fornisce un'idea generale del processo da seguire per rendere accessibili Servizi hardware. Il framework driver specifica i dettagli dell'utilizzo di eccezioni previste per consentire ai piloti di operare a livello di kernel di solito limitato al sistema operativo.

3

Scrivere un driver di semplice shell che fornisce i meccanismi di base per connettersi a un driver di dispositivo a un'applicazione. Maggior parte dei Framework forniscono esempi e tutorial codice che produrrà un'implementazione semplice che può essere utilizzata come base per il driver. Questo guscio dovrebbe fornire i meccanismi per correttamente avviare e arrestare il driver prima e dopo le chiamate specifiche.

4

Determinare la funzione di hardware possibile più semplice che è possibile implementare. Questo esercizio fornisce i fondamenti di un'interazione di programmazione, verifica che l'hardware sia collegato correttamente al computer e comunicazione. È comune per iniziare con una semplice richiesta unidirezionale che attiva un meccanismo di luce o rumore per confermare il successo della trasmissione del messaggio. Questo processo ti insegna come iniziare, inviare e chiudere un'interazione con il dispositivo.

5

Affrontare più avanzate interazioni uno alla volta, basandosi sulle conoscenze acquisite a passaggi precedenti. Gli esempi includono operazioni che attendere una risposta di dati deve essere restituito al conducente, in modo sincrono o asincrono. Queste interazioni possono richiedere l'implementazione di meccanismi che bloccano l'esecuzione fino a quando non viene ricevuta una risposta o entrando in uno stato che consente la ricezione di una risposta e la reazione in un secondo momento.

6

Implementare le manipolazioni di dati per produrre i risultati nella forma prevista dall'applicazione chiamante. Alcuni Framework driver consentono la separazione del codice in livelli utente e kernel. Livello di utente, dove le applicazioni operano, è più limitato ma meno in grado di determinare il sistema di instabilità. Se il sistema operativo supporta questa funzionalità, queste manipolazioni sono candidati per essere implementato a livello di utente, se hanno non bisogno di nessun eccezioni a livello di kernel.

7

Restituire i dati all'applicazione e chiudere correttamente le risorse che sono state usate dal vostro autista. In alcuni casi, un driver potrebbe supportare l'interazione diretta con il dispositivo dall'applicazione. In questo caso, il driver deve mantenere le risorse disponibili non specificamente richiesto per spegnersi in un secondo momento.

Consigli & Avvertenze

  • È più facile da imparare i concetti di base e modelli di elaborazione di (i/o) di input/output seriale utilizzando le interfacce di sistema a livello utente per interagire con semplici file di testo. Interfacce del kernel driver di livello I/O sono sostanzialmente simili.
  • Un driver di periferica virtuale è una speciale variante del driver software che emula i servizi che potrebbero essere forniti dall'hardware senza alcuna connessione a un dispositivo fisico.
  • Errori del software nel codice scritto a livello di kernel comportano un elevato rischio di creazione di instabilità del sistema. È fondamentale che la logica software essere attentamente sviluppato e testato da un ingegnere di software specializzato che può ridurre il rischio attraverso strategie di sperimentazione attenta.