Qual è il modo migliore per imparare a sviluppare i driver? [chiuso]

5

Ad un certo punto della mia carriera mi piacerebbe sicuramente essere coinvolto in qualche programmazione embedded. Stavo pensando che iniziare a sviluppare alcuni piloti sarebbe un buon posto per sviluppare le mie capacità nei confronti. Sono aperto a farlo su entrambe le finestre o la piattaforma Linux (eventualmente vorrà probabilmente tentare entrambi). Quali strumenti consiglieresti per cercare di iniziare questo progetto? Qualunque altra risorsa che hai trovato utile (ad es. Libri, siti Web, programmi, ecc.)? Qualche consiglio / raccomandazioni? Grazie!

    
posta Kenneth 16.03.2011 - 20:22
fonte

7 risposte

3

Il codice sorgente dei driver esistenti è ovvio.

Oltre a questo, la soluzione migliore è probabilmente leggere le specifiche tecniche di alcuni dispositivi e provare a scriverne uno. Suggerirei un adattatore di rete economico (se esiste ancora qualcosa) in quanto è piuttosto impegnativo, ma è meno probabile che si rovini l'intero computer dopo un tentativo fallito. Non è necessario scrivere un driver completo, un programma standalone che può fare un paio di cose usando la magia di basso livello.

L'altra traccia che puoi seguire è concentrarti sul driver e creare un vero driver per un dispositivo non hardware, come un disco virtuale.

Puoi quindi mettere insieme i due. Beh, se lo desideri ancora, perché potresti averne abbastanza a questo punto.

    
risposta data 16.03.2011 - 20:37
fonte
8

Se vuoi fare programmazione incorporata, procurati dell'hardware!

Per una prima introduzione, consiglio vivamente di ottenere un Arduino . Ho ricevuto un Kit di Inventore per Arduino da Sparkfun . Contiene un sacco di hardware e istruzioni facili da seguire per la creazione di molti progetti. Ti guida attraverso l'assemblea su una breadboard, scrivendo il software, facendo lampeggiare i LED e facendo girare i motori. Molto divertente! Arduino è molto espandibile, con molti scudi (schede aggiuntive) che danno alla tua Arduino funzionalità extra, come un lettore di schede SD, GPS e altro ancora.

Se desideri una scheda più avanzata, Starter Kit PIC32 Ethernet ha un microcontrollore a 32 bit e interfacce USB ed Ethernet. Carica i progetti di esempio dall'ID gratuito e hai un server web su una piccola scheda. PIC32 è un dispositivo potente e puoi usare questo kit per sperimentarlo.

Entrambe queste schede vengono caricate tramite USB, non sono necessari programmatori separati. Entrambi hanno a disposizione tutto il software e gli strumenti per il download.

    
risposta data 17.03.2011 - 02:27
fonte
3

Guarda il libro Driver di dispositivo Linux . Lo sto leggendo al momento e sembra essere abbastanza buono (non posso dire troppo, però, a circa 50).

Oltre a questo, programma e poiché il codice sorgente è disponibile per i driver esistenti, usalo!

    
risposta data 16.03.2011 - 20:41
fonte
2

So che potrebbe sembrare ovvio a questo punto, ma lo sviluppo del driver di periferica e i sistemi embedded sono entrambi aree in cui si deve sapere qualcosa sull'architettura del computer e sulla progettazione digitale. Non è possibile scrivere un driver di dispositivo per un nuovo dispositivo a meno che non si possa leggere e comprendere i fogli dati e comprendere i diagrammi dei tempi. I sistemi integrati sono un'area in cui si deve essere mezzo informatico / metà ingegnere elettrico.

    
risposta data 16.03.2011 - 21:01
fonte
1

I loro alcuni blog online che parlano di persone che scrivono driver USB per dispositivi USB "sconosciuti", è piuttosto interessante. Penso che quando li ho trovati ho digitato su google: "creare un driver usb linux"

    
risposta data 16.03.2011 - 21:04
fonte
1

Ho iniziato perché il mio lavoro lo richiedeva, quindi ho iniziato a leggere le specifiche relative a hardwards e sistema operativo.

Seriamente però. Ho bisogno di scrivere un autista. Così ho imparato l'API dell'hardware, quindi le specifiche del driver del sistema operativo. Ho ottenuto il codice sorgente di esempio dei driver e (nel mio caso si trattava del kit di sviluppo DDK di Windows NT) e ho iniziato a programmare e imparare.

Il trucco che ho trovato è stato quello di scriverne uno e perfezionarlo per fare ciò che volevo, ovvero collegare a un processo a 16 bit. È stato un duro processo di apprendimento che credo sarebbe stato più difficile se davvero non avessi dovuto produrre un autista commerciale.

Nel tuo caso, ti consiglio di procurarti un hardware programmabile come Arduino, forse il PI di Rasbery, e iniziare a fare in modo che l'hardware obbedisca al tuo comando.

Caveat: avevo già fatto Assembler per anni quindi l'interfaccia della macchina non era nuova per me.

    
risposta data 06.08.2012 - 11:45
fonte
0

il seguente link fornisce una breve introduzione sullo sviluppo di driver di dispositivo nella piattaforma Windows link

ma prima di iniziare lo sviluppo del driver dovresti avere una conoscenza completa dell'hardware che stai collegando al computer. Nei sistemi embedded il principale canale di comunicazione tra due componenti viene stabilito con l'aiuto delle porte RX / TX (RX per la ricezione, TX per trasmettendo). Ciò vale anche in caso di hardware e PC. Qualsiasi hardware connesso al PC comunica continuamente tra loro. Si consiglia di inviare 01 a un computer dall'hardware. Possiamo programmare un'attività specifica nello sviluppo del driver. vogliamo passare un LED nell'hardware, quindi dobbiamo scrivere un programma in modo tale che, estrapolando le informazioni dal computer, l'hardware accenda la luce.

il link sopra descrive questo argomento molto meglio di me.

    
risposta data 04.04.2014 - 11:04
fonte

Leggi altre domande sui tag