Gpdrive Source Code Release


Squidge

Certified Guru
Joined
Nov 16, 2003
Messages
8,493
Location
UK
Website
Visit site
Well, I don't have any time to carry on with this project, but that doesn't mean it should die.

If anyone is interested, the current source code to the project is attached to this thread. It compiles under the current DevKitAdv.

Hopefully, someone with knowledge of USB/etc will be able to carry on from where I left off.

www.usb.org has all the documents you require if you wish to take up this project, as well as a discussion forum for questions/etc.

If you do take the project on, don't forget to let us all know how it's going!

All I ask is that you credit me if you use this code.
 
Thanks - the project shall live on. Albeit probably not until someone really decides to get stuck into the source, but it shall live on :)
 
Thanx alot :)
Which features - apart from bugs - are not implented yet ? Any clue ?
 
Well, decent error checking for a start (eg. make sure lun is zero), making the usb routine an ISR, and general code tidyup. Everything else is pretty much done !

ISR worked under ARM ADS, but I couldn't get it to work properly under DevKitAdv, so it was converted to being called by the main program.

Oh yeah, Multi OS support is still missing also - but I've no idea how to implement that as the OS's it fails with don't seem to send any commands that are not implemented.
 
Perhaps some commands differ on different OSes, despite looking the same.
Well, I suppose that's fairly obvious - but the question is obviously how to get rid of differences that cause crashes...
 
Very true. However, there's a specification document on usb.org that says what commands should be implemented and how they work. So if you code for that, it should be compatible across multiple OSs. However, it don't work.

Looking at other projects along the same line, it seems they do the same thing, so it just did my head in :angry:
 
If anyone is continuing with developing the source code of gpdrive,
This is the error I get on Linux Linux version 2.6.2-1-686 (herbert@gondolin) (gcc version 3.3.2 (Debian)) #1 Sat Feb 7 13:49:20 EST 2004

on the GP32
..
Received address
Request descriptor (000108)
Received address
Request descriptor (000108)

on the terminal and in dmesg
hub 1-0:1.0: new USB device on port 1, assigned address 4
usb 1-1:device descriptor read/all, error -110
hub 1-0:1.0: new USB device on port 1, assigned address 5
usb 1-1:device descriptor read/all, error -110

Whereas on winxp
I get on the gp32 :

Request Descriptor (000140)
Received address
Request Descriptor (000112)
Request Descriptor (000209)
Request Descriptor (0002ff)
Request Descriptor (000112)
Request Descriptor (000209)
Request Descriptor (000223)
Received config (010000)
Class request (FE0001)
 
I've got the same error , and i'm using Mandrake 9.1 (kernel 2.4.21)
 
Thanks, Squidge. I tried the file on the web but it includes ntddk.h. I found ntddk.h on the web but it includes several other files. Then I removed ntddk.h from usb100.h and included some typedefs for things like UCHAR etc.
HOwever I still get
usbdata.c:33: warning: excess elements in struct initializer
usbdata.c:33: warning: (near initialization for `usb_config')
usbdata.c:42: `USB_CLASS_CODE_MASSSTORAGE_CLASS_DEVICE' undeclared here (not in a function)
usbdata.c:42: initializer element is not constant
usbdata.c:42: (near initialization for `usb_interface.bInterfaceClass')
usbdata.c:43: `USB_SUBCLASS_CODE_SCSI' undeclared here (not in a function)
usbdata.c:43: initializer element is not constant
usbdata.c:43: (near initialization for `usb_interface.bInterfaceSubClass')
usbdata.c:44: `USB_PROTOCOL_CODE_BULK' undeclared here (not in a function)
usbdata.c:44: initializer element is not constant
usbdata.c:44: (near initialization for `usb_interface.bInterfaceProtocol')
make: *** [usbdata.o] Error 1
 
Hi I looked on the web are the values correct?
`USB_CLASS_CODE_MASSSTORAGE_CLASS_DEVICE' is this 0 or 8
`USB_SUBCLASS_CODE_SCSI' is this 6
`USB_PROTOCOL_CODE_BULK' is this 50h
 
Back
Top