Newsgroup: it.comp.macintosh
Titolo: Scrivere driver USB per Mac

Devo scrivere driver per USB su Mac, ma finora ho sviluppato solo sotto
Windows. Qualcuno sa darmi info su come fare ? Ho scritto un driver dopo
aver scaricato le DDK per usb, ma non so come installarlo.  Basta
inserirlo nella cartella di sistema oppure occorre fare altro ?
grazie
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote in message
news:1fmcvjc.lf3bs6l8az5sN%NOS...@inwind.it

Sí, ho scaricato le SDK ed ho provato a scrivere il driver.  
A parte qualche fesseria che posso aver scritto il problema é che 
non so se il driver va installato ed eventualmente come va installato. 
Su PC so come fare, o meglio essendo il mio dispositivo un HID (Human 
Interface Device) windows installa il driver per la classe HID appena 
lo connetto.  Non é cosí per Mac, perché appena lo connetto mi chiede 
il driver.  Io ho un imac un pó vecchiotto e non ho capito se mi chiede
il class driver (ma dovrebbe averlo giá essendo un HID, o il device
 driver, cioé quello specifico del mio dispositivo).


 il driver. 
Sui Mac OS pre-X i driver vanno messi in "Cartella Sistema:Estensioni"
(devi riavviare per renderli attivi). Se al riavvio il driver che hai
fatto tu dovesse creare casini che ti impediscono di portare a termine
l'avvio, riavvia un'altra volta tenendo premuto il tasto delle
maiuscole, in modo da disattivare temporaneamente le estensioni e poter
togliere il driver.

 wrote in message
news:1fmdc4b.1yxw4936icu2N%NOS...@inwind.it

Molte grazie, adesso ci provo. Per caso, esiste un'utility che mi
consente,
al boot, di vedere cosa sta accadendo ?  Ad es. perché non lo sta
caricando, chi é
che fa casino, ecc. ?


 che fa casino
Questo lo fa anche Conflict Catcher. Per le altre cose ti serve un
debugger credo.

 wrote in message
news:1fmepyf.lechh1xhhmw2N%NOS...@inwind.it

Alla fine ci sono quasi riuscito, grazie.  Il problema é il "quasi".
Sono riuscito a fargli installare il driver (anche se é un HID, devo
fargli cercare il driver con l'opzione kUSBAnyClass) sono riuscito a
caricare le PlugInDispatchTable, ma non riesco a capire perché quando va
a cercarsi l'HIDDescriptor con la routine HIDGetHIDDescriptor torna con
codice di errore -2802.
I parametri di passaggio sono
(kUSBReportDEsc,0,nil,&mHIDReportDEscLenght) (mi riferisco all'esempio
di HIDReader delle USB SDK).
A cosa corrisponde tale codice di errore?


 wrote in message
news:1fmo4j9.1u97n309gvrfgN%NOS...@inwind.it

Grazie, il buio della notte inizia a schiarirsi....  
Altra domanda : C'é un modo per eseguire un driver passo passo ?  Ad es.
su PC quando scrivo una dll posso specificare un file eseguibile che la
chiamerá per fare il debug.  In tal modo quando viene chiamata la dll io
eseguo il codice in modo passo passo.  Esiste una cosa simile per mac ?


 Altra domanda : C'é un modo per eseguire un driver passo passo?
Non so. Prova a dare un'occhiata qua:
<
http://www.versiontracker.com/mp/new_search.m?productDB=mac&mode=Quick&
OS_Filter=MacOS&search=debug>

 wrote in message
news:1fmq0y3.1h60gxh1urrfoiN%NOS...@inwind.it

Grazie.  Altra dubbio che mi sta venendo mentre rileggo il codice degll'
esempio UniversalModule (dalle USB DDK).  Quando carica il driver,
inizializza il Parameter Block (PB) con i valori relativi
all'interfaccia in questione (che gli vengono passati dal sistema dopo
la numerazione, se ho ben capito) infatti chiama la routine
SetParamBlock passandogli come argomenti:
theInterfaceRef
* paramblock
il primo dovrebbe essere il riferimento passato dal sistema dopo la
numerazione, il secondo é il puntatore al PB del dispositivo (di cui sis
sta scrivendo il driver) in modo da inizializzarlo.  Se guardi il
codice, non viene inizializzato il buffer dei dati (trasmessi o
ricevuti) in quanto setta paramblock->usbBuffer = nil. Sembra che questa
inizializzazione venga fatta dopo dalla routine
UniversalModuleInitiateTransation(*pb)
chiamata dalla InterfaceEntry dopo aver settato il registro usbRefcon a
kGetHIDDesc.
Sembra quindi che il buffer venga settato (in termini di allocazione di
memoria) dopo leggendolo direttamente dal descrittore del dispositivo.
Ti sembra corretta questa mia ipotesi ?


 Ti sembra corretta questa mia ipotesi ?
Mi spiace, mi chiedi troppo: non faccio il programmatore. ;-) 

 
Loris, a molte delle tue domande possono risponderti i membri del MIPZ:
http://www.mipz.it/
Macintosh Italian Programmers Zone