PDA

View Full Version : Xcode USB Driver Dvelopment




fly2europa
Feb 27, 2009, 11:34 AM
Folks, I am looking for someone who has done some xcode usb driver development in the past. Someone good at xcode would be fine as well, but should know the sdk well. There are several question to my project, and maybe looking to employ someone.

The project involves a driver development (perhaps kernel level) for navigation device replacing keyboard and mouse. We would like the device to work in all applications, rather then building drivers for each application, but the api should allow flexibility.

The questions I have are:

1. Is firewire slowly replacing usb as hardware on the mac? I see 3.0 standard so just wondering.

2. What are the limitations of writing high level vs kernel level drivers

3. Can the driver be a linux built driver which simply works with OS X, or is the kernel different enough.

Thanks. In case this is posted in the wrong place, please let me know where to post.



ChrisA
Feb 27, 2009, 12:12 PM
1. Is firewire slowly replacing usb as hardware on the mac? I see 3.0 standard so just wondering.

2. What are the limitations of writing high level vs kernel level drivers

3. Can the driver be a linux built driver which simply works with OS X, or is the kernel different enough.

Thanks. In case this is posted in the wrong place, please let me know where to post.

1) Replacing? no. Will FW be around in several years? I think it will live on in the higher end Macs but the new MB lacks FW.

2) What is "high level". You mean user space? Kernel level drivers require a lot of work and are not easy to write and there is the danger of crashing the entire system. When I work on this kind of stuff I need to do a complete system backup before every test run. You need to re-test and likely re-work the driver for every version of the OS. So you will need programmers on the payroll for the life of the product. User space drivers can be platform independent and are easier to write. But you can't just choose which you want. the choise is based on the device and what it does and how it interacts with the application. But if the device is not yet built you can still design it so as to reduce software costs and OS version dependants. You need to find a good system engineer who knows both hardware and software design to do the trades for you. These guys don't work cheap, figure upper middle class income plus benefits and overhead.

3) Even different versions of the LInux kernal are "different enough". At this level Linux is radically different then Mac OS X. However there can be common code. Drivers do two thing, talk to the device and talk to the OS. Details of how much can be common depend a LOT on your device

All that said, do you even need a device driver? If the device is yet to be designed then maybe you can make in class compliant somehow. What are you building?

More meanigful advice would require knowing more about the device and the application.

fly2europa
Mar 9, 2009, 07:39 PM
1) Replacing? no. Will FW be around in several years? I think it will live on in the higher end Macs but the new MB lacks FW.

2) What is "high level". You mean user space? Kernel level drivers require a lot of work and are not easy to write and there is the danger of crashing the entire system. When I work on this kind of stuff I need to do a complete system backup before every test run. You need to re-test and likely re-work the driver for every version of the OS. So you will need programmers on the payroll for the life of the product. User space drivers can be platform independent and are easier to write. But you can't just choose which you want. the choise is based on the device and what it does and how it interacts with the application. But if the device is not yet built you can still design it so as to reduce software costs and OS version dependants. You need to find a good system engineer who knows both hardware and software design to do the trades for you. These guys don't work cheap, figure upper middle class income plus benefits and overhead.

3) Even different versions of the LInux kernal are "different enough". At this level Linux is radically different then Mac OS X. However there can be common code. Drivers do two thing, talk to the device and talk to the OS. Details of how much can be common depend a LOT on your device

All that said, do you even need a device driver? If the device is yet to be designed then maybe you can make in class compliant somehow. What are you building?


Hi, Thanks for the response last week. High level I mean application level / yes user space. I think I would prefer kernel driver, I understand it would require updates but perhaps not much work for clients using the device in different application. Class level, huh, I have not looked into this.

This is a navigation device, we would like people to use it in different applications. It would replace keyboard and mouse (not really, but work along side). I would not mind talking more with you about this. If you do not mind please email me fly2europa at hotmail dot com?

I am interested in finding someone to work on this project on short term, perhaps you might be interested?