Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless
MSI FORGE GK600 TKL WIRELESS: switch lineari hot-swap, tripla connettività, display LCD e 5 strati di fonoassorbimento. Ottima in gaming, a 79,99 euro
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI porta un importante aggiornamento alla sua linea di gimbal camera tascabili con Osmo Pocket 4: sensore CMOS da 1 pollice rinnovato, gamma dinamica a 14 stop, profilo colore D-Log a 10 bit, slow motion a 4K/240fps e 107 GB di archiviazione integrata. Un prodotto pensato per i creator avanzati, ma che convince anche per l'uso quotidiano
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-10-2008, 16:53   #1
|giacomo|
Member
 
Iscritto dal: Oct 2007
Messaggi: 83
Creare driver

Ho aperto questo post per chiedere voi un aiuto e delle dritte sulla creazione di un driver per windows e per linux..so discretamente come lavora un so per quanto riguarda l' I/O, kernel ecc..o meglio so come agisce nulla di piu..come linguaggi utili conosco l assembly e java..quest' ultimo so che non e tra i piu adatti ma se c'e da studiare qualcosa di nuovo non mi tiro indietro..Se sapete darmi qualche indicazione,dritta o qualsiasi informazione e ben accetta..so che fare un driver e una cosa difficilissima..ma per passare il tempo....
|giacomo| è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 17:24   #2
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Che tipo di driver vuoi sviluppare? In altre parole: cosa vorresti "pilotare"?
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 17:36   #3
|giacomo|
Member
 
Iscritto dal: Oct 2007
Messaggi: 83
Ecco volevo specificare propio all' inizio poi pensavo fosse uguale..e piu facile "pilotare" un dispositivo gia fatto (chessò una cam) o magari un piccolo circuitino fatto da me che magari accende un led?
|giacomo| è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 18:04   #4
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
In entrambi i casi devi avere un bagaglio di conoscenze che richiede anni per essere acquisito... Nel caso di un dispositivo non realizzato da te devi avere a disposizione le specifiche tecniche complete o essere in grado di fare reverse engineering (cosa non banale!).

Quote:
Ecco volevo specificare propio all' inizio poi pensavo fosse uguale
Su Windows si possono sviluppare diverse tipologie di driver, ed in baso al tipo cambia il livello di difficoltà (da elevatissimo diventa elevato! ).

Consulta questo sito.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 18:09   #5
|giacomo|
Member
 
Iscritto dal: Oct 2007
Messaggi: 83
Grazie mille x il sito...cmq si immaginavo fosse una cosa assai difficile..ma magari pian piano, con l aiuto di persone piu esperte..il mio e solo un passatempo nulla di frettoloso o necessario quindi...cmq..tu quindi mi consiglieresti (come minor male s' intende ) di pilotare un dispositivo semplice semplice creato da me?
|giacomo| è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 18:20   #6
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Inizia con lo studiare BENE il C, senza quello non vai da nessuna parte...
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 18:22   #7
|giacomo|
Member
 
Iscritto dal: Oct 2007
Messaggi: 83
Quote:
Originariamente inviato da variabilepippo Guarda i messaggi
Inizia con lo studiare BENE il C, senza quello non vai da nessuna parte...
Benissimo!era gia nei miei programmi futuri a dire il vero.
|giacomo| è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 18:46   #8
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
I driver si sviluppano in C (e poco più) e non basta una conoscenza superficiale del linguaggio, bisogna avere molta esperienza nello sviluppo in C. Quando conoscerai BENE il C potrai pensare di acquistare libri sullo sviluppo di driver per il sistema operativo prescelto e studiare tutta la documentazione relativa.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 20:01   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
dico la mia: tanto per cominciare non è che allegramente puoi metterti a sviluppare driver per Windows E per Linux
sono due mondi completamente diversi, o l'uno o l'altro (e ti dirò, ho la netta sensazione che Linux sia più semplice, e non si tratta necessariamente di un vantaggio per Linux, anzi).
quindi per prima cosa scegli il tuo sistema target. non scegliere Linux solo perché ti ho detto che è più semplice: è più semplice una volta che hai imparato, ma la documentazione in queste cose è di importanza fondamentale e in quanto a documentazione nessuno può battere MSDN (Microsoft Developer's Network), quindi può darsi invece che ti riesca meglio sviluppare drivers per Windows.
in secondo luogo ribadisco il consiglio di un apprendimento totale del C (tranquillo, tutto sommato è un linguaggio molto semplice: il C++ è 10 volte più complesso ), e aggiungo che i due linguaggi che conosci ti saranno perfettamente inutili: che i drivers nel 2008 si sviluppino in assembly è un mito nato dall'ignoranza (visto che l'apprendimento in queste cose è molto arduo); un driver per Windows è sviluppato completamente in C, neanche una riga di assembly. se non ci credi scarica il WDK (Windows Driver Kit) e guardati tutti i drivers di esempio, non troverai una riga di assembly che sia una.
come ultima questione, non credo che sia necessario spendere soldi e acquistare un libro: come ho già scritto, la qualità della documentazione che c'è in MSDN è assolutamente ottima, basta solo armarsi di pazienza, tempo, e leggere tutto dall'inizio alla fine. to', qui c'è l'inizio:
http://msdn.microsoft.com/en-us/library/ms791699.aspx
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 20:21   #10
|giacomo|
Member
 
Iscritto dal: Oct 2007
Messaggi: 83
Quote:
Originariamente inviato da 71104 Guarda i messaggi
dico la mia: tanto per cominciare non è che allegramente puoi metterti a sviluppare driver per Windows E per Linux
sono due mondi completamente diversi, o l'uno o l'altro (e ti dirò, ho la netta sensazione che Linux sia più semplice, e non si tratta necessariamente di un vantaggio per Linux, anzi).
quindi per prima cosa scegli il tuo sistema target. non scegliere Linux solo perché ti ho detto che è più semplice: è più semplice una volta che hai imparato, ma la documentazione in queste cose è di importanza fondamentale e in quanto a documentazione nessuno può battere MSDN (Microsoft Developer's Network), quindi può darsi invece che ti riesca meglio sviluppare drivers per Windows.
in secondo luogo ribadisco il consiglio di un apprendimento totale del C (tranquillo, tutto sommato è un linguaggio molto semplice: il C++ è 10 volte più complesso ), e aggiungo che i due linguaggi che conosci ti saranno perfettamente inutili: che i drivers nel 2008 si sviluppino in assembly è un mito nato dall'ignoranza (visto che l'apprendimento in queste cose è molto arduo); un driver per Windows è sviluppato completamente in C, neanche una riga di assembly. se non ci credi scarica il WDK (Windows Driver Kit) e guardati tutti i drivers di esempio, non troverai una riga di assembly che sia una.
come ultima questione, non credo che sia necessario spendere soldi e acquistare un libro: come ho già scritto, la qualità della documentazione che c'è in MSDN è assolutamente ottima, basta solo armarsi di pazienza, tempo, e leggere tutto dall'inizio alla fine. to', qui c'è l'inizio:
http://msdn.microsoft.com/en-us/library/ms791699.aspx
Grazie mille per la risposta esaustivissima!..allora mi mettero a studiare il C..sinceramente anche io (nell' ignoranza) credevo che l assembly fosse il linguaggio principale per lo sviluppo di un driver..e non solo..per quanto riguarda la piattaforma da sciegliere sono ancora indeciso sinceramente...magari mentre studio il C cerco intanto di documentarmi e vedere quale delle due si adatta piu al mio scopo..Inoltre..dato che mi sembra di capire che hai una certa preparazione sull argomento (come ti stimo) secondo te e piu facile "pilotare" una periferica gia fatta o qualcosa di creato da me?
|giacomo| è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 20:30   #11
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
come ultima questione, non credo che sia necessario spendere soldi e acquistare un libro: come ho già scritto, la qualità della documentazione che c'è in MSDN è assolutamente ottima, basta solo armarsi di pazienza, tempo, e leggere tutto dall'inizio alla fine.
Su MSDN si trovano molte informazioni e la documentazione ufficiale è decisamente completa, ma sono in tanti a preferire l'approccio organico ad un percorso di studio, approccio che solo un buon libro può dare. Inoltre sui buoni libri si trovano consigli, non inclusi nella documentazione tecnica, legati all'esperienza degli autori (quelli su DDK/WDK/WDM/WDF/etc vengono solitamente scritti da membri dei rispettivi team Microsoft). Poi se si è abituati ad usare un metodo di studio "custom" allora non ci sono problemi...

Quote:
credevo che l assembly fosse il linguaggio principale per lo sviluppo di un driver
Concordo con 71104, l'Assembly (come linguaggio) non ti servirà quasi per niente nello sviluppo di driver.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 20:33   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da |giacomo| Guarda i messaggi
secondo te e piu facile "pilotare" una periferica gia fatta o qualcosa di creato da me?
banalmente, è più facile pilotare una periferica dalle specifiche tecniche semplici; tra l'altro se la periferica l'hai creata tu le specifiche tecniche le conosci già. esistono invece periferiche per le quali le specifiche sono trade secret dell'azienda che le produce, e quindi creare un driver potrebbe anche essere praticamente impossibile, o comunque assolutamente irragionevole per un hobbysta.

la risposta breve: la seconda
inoltre ti avviso che potrebbe non essere neanche necessario scrivere un driver: se ad esempio crei un circuito che si attacca al PC tramite una porta esterna (COM, LPT, USB, ...) allora puoi manovrarlo anche con un semplice programma applicativo. se scrivi il programma in Win32 puoi comunicare con le suddette porte usando l'interfaccia di I/O standard (CreateFile, ReadFile, WriteFile, ...) più qualche altra funzione aggiuntiva; se invece programmi in .NET puoi usare classi come queste:
http://msdn.microsoft.com/en-us/libr....io.ports.aspx
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 20:48   #13
|giacomo|
Member
 
Iscritto dal: Oct 2007
Messaggi: 83
Quote:
Originariamente inviato da variabilepippo Guarda i messaggi
Su MSDN si trovano molte informazioni e la documentazione ufficiale è decisamente completa, ma sono in tanti a preferire l'approccio organico ad un percorso di studio, approccio che solo un buon libro può dare. Inoltre sui buoni libri si trovano consigli, non inclusi nella documentazione tecnica, legati all'esperienza degli autori (quelli su DDK/WDK/WDM/WDF/etc vengono solitamente scritti da membri dei rispettivi team Microsoft). Poi se si è abituati ad usare un metodo di studio "custom" allora non ci sono problemi...



Concordo con 71104, l'Assembly (come linguaggio) non ti servirà quasi per niente nello sviluppo di driver.
Fin ora tutti i linguaggi che ho studiato per conto mio li ho studiati da tutorial su internet e per approffondire poi sui libri..quindi sapresti mica consigliarmi qualche bel libro per quando avro finito di studiarmi il C??Grazie!
|giacomo| è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2008, 20:52   #14
|giacomo|
Member
 
Iscritto dal: Oct 2007
Messaggi: 83
Quote:
Originariamente inviato da 71104 Guarda i messaggi
inoltre ti avviso che potrebbe non essere neanche necessario scrivere un driver: se ad esempio crei un circuito che si attacca al PC tramite una porta esterna (COM, LPT, USB, ...) allora puoi manovrarlo anche con un semplice programma applicativo. se scrivi il programma in Win32 puoi comunicare con le suddette porte usando l'interfaccia di I/O standard (CreateFile, ReadFile, WriteFile, ...) più qualche altra funzione aggiuntiva; se invece programmi in .NET puoi usare classi come queste:
http://msdn.microsoft.com/en-us/libr....io.ports.aspx
Questa non la sapevo!!Quindi potrebbe risultarmi addirittura piu facile?A questo punto mi sorge il dubbio..creo un driver o mi conviene usare il secondo metodo,lasciando la creazione di driver a quando la mia esperienza e livello di studi saranno piu avanzati??Il mio scopo era solo quello di "divertirmi" ad attaccare qualcosa al pc e vedere che funzione per "mia" opera.
|giacomo| è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 12:04   #15
Jean-Louis
Junior Member
 
Iscritto dal: Oct 2008
Città: Pisa
Messaggi: 15
Quote:
Originariamente inviato da |giacomo| Guarda i messaggi
Fin ora tutti i linguaggi che ho studiato per conto mio li ho studiati da tutorial su internet e per approffondire poi sui libri..quindi sapresti mica consigliarmi qualche bel libro per quando avro finito di studiarmi il C??Grazie!
Se deciderai di orientarti verso linux esiste un libro chiamato Linux Device Drivers (Third Edition) rilasciato con licenza CreativeCommons by-sa scaricabile liberamente da questo sito LDD3

Quote:
Originariamente inviato da 71104 Guarda i messaggi
un driver per Windows è sviluppato completamente in C, neanche una riga di assembly. se non ci credi scarica il WDK (Windows Driver Kit) e guardati tutti i drivers di esempio, non troverai una riga di assembly che sia una.
Visto che ho l'occasione, ne approfitto anch'io per una domanda

sono completamente all'oscuro dello sviluppo di driver per windows, ma alcuni mesi fa provai a cercare qualche informazione per capire un po' come funzionavano...

lo scopo era di vedere se riuscivo a capire come funzionava questo Filter Driver UsbSnoop

sul sito c'è scritto che hanno utilizzato il WDK 6000, provai a girare sul sito della microsoft, ma non ho capito se questo WDK 6000 si può scaricare gratuitamente o se c'è una licenza da pagare...

mi sapreste dare qualche informazione in più? Se c'è una licenza... quanto costa?

Grazie mille.
Jean-Louis è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 12:48   #16
agente mm8
Senior Member
 
Iscritto dal: Mar 2008
Messaggi: 401
credo proprio che dovresti aprire un'altra discussione, Jean-Louis
agente mm8 è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 13:15   #17
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Jean-Louis Guarda i messaggi
Visto che ho l'occasione, ne approfitto anch'io per una domanda

sono completamente all'oscuro dello sviluppo di driver per windows, ma alcuni mesi fa provai a cercare qualche informazione per capire un po' come funzionavano...

lo scopo era di vedere se riuscivo a capire come funzionava questo Filter Driver UsbSnoop

sul sito c'è scritto che hanno utilizzato il WDK 6000, provai a girare sul sito della microsoft, ma non ho capito se questo WDK 6000 si può scaricare gratuitamente o se c'è una licenza da pagare...

mi sapreste dare qualche informazione in più? Se c'è una licenza... quanto costa?

Grazie mille.
per il momento è tutto gratuito. registrati al sito http://connect.microsoft.com/ e dopodiché vai a questa pagina:
https://connect.microsoft.com/site/s...spx?SiteID=148
per scaricarlo clicca su Download nel menu a sinistra. ti farà installare un download manager della Microsoft, il File Transfer Manager.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 13:45   #18
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Se vuoi accendere LED o pilotare ingressi di semplici circuiti elettrici/elettronici, e ti bastano 0-5V a basso amperaggio, e ti va di usare la parallela
(quindi no driver, ma un programmino che piloti la parallela a tuo uso e consumo)
Con il C# e' sufficientemente semplice.

Ed anche praticamente pronto leggendo qui
http://www.codeproject.com/KB/cs/csppleds.aspx
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 18:56   #19
|giacomo|
Member
 
Iscritto dal: Oct 2007
Messaggi: 83
Quindi anche il C# potrebbe essere una buona alternativa?Pero cercando di capire un po quello che ce all interno di quel link in pratica crea quel programmino "solo" gestendo la porta seriale..cosa che se la memoria non m' inganna si può fare anche in java e assembler..correggetemi se sbaglio!!
|giacomo| è offline   Rispondi citando il messaggio o parte di esso
Old 27-10-2008, 18:57   #20
|giacomo|
Member
 
Iscritto dal: Oct 2007
Messaggi: 83
[quote=Jean-Louis;24745210]Se deciderai di orientarti verso linux esiste un libro chiamato Linux Device Drivers (Third Edition) rilasciato con licenza CreativeCommons by-sa scaricabile liberamente da questo sito LDD3

Grazie per il consiglio!ora lo scarico!
|giacomo| è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tastiera gaming MSI GK600 TKL: switch hot-swap, display LCD e tre modalità wireless Tastiera gaming MSI GK600 TKL: switch hot-swap, ...
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
È il momento migliore per comprar...
Svendita MacBook Pro: c'è il mode...
Oggi questa TV TCL QLED da 43 pollici co...
Il caricatore multiplo da 200W che va be...
Top 7 Amazon, il meglio del meglio di qu...
Spento lo strumento LECP della sonda spa...
Voyager Technologies ha siglato un accor...
GoPro annuncia la linea MISSION 1 con tr...
Alcune varianti dei futuri Samsung Galax...
Il ridimensionamento di OnePlus in Europ...
Il cofondatore di Netflix ha lasciato l'...
ASUS porta in Italia il nuovo Zenbook Du...
Assassin's Creed: Black Flag Resynced, s...
Xbox Game Pass cambierà: tra le n...
I nuovi Surface Pro e Laptop sono vicini...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:57.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v