Vxworks USB host controller drivers - VxWorks
This is a discussion on Vxworks USB host controller drivers - VxWorks ; Hi All,
This was regarding the Vxworks USB Host Controller drivers.
The USB Host Controller drivers in Vxworks are attached to the USB
Core(USBD) by the API '...HcdAttach()'. If any new devices are attached
to the USB ports, the request ...
-
Vxworks USB host controller drivers
Hi All,
This was regarding the Vxworks USB Host Controller drivers.
The USB Host Controller drivers in Vxworks are attached to the USB
Core(USBD) by the API '...HcdAttach()'. If any new devices are attached
to the USB ports, the request for the same gets routed through the host
controller driver to the USBD from wherein the corresponding class
driver for the device is loaded so as to perform communication with the
device. These class drivers in turn are registered to the io system as
they are loaded in to the system.
I had a query regarding an implementation of a customized USB driver
which has functionalities of the host controller driver, USBD and also
the class driver within it. There is a single layer implementing all of
these three drivers within a single driver and this driver is supposed
to communicate with a customized application that we are going to
develop(not supposed to work with any standard applications like the
file system etc.).
Is it necessary that for our this customized driver, we register the
driver with the io system? or is it that we need not require doing the
driver registration to the io system and implement the
application-driver interface through a function call
interface(considering that in Vxworks there is no concept of user space
and kernel space and the global address space can be shared with both
the application and the driver)?
If we do not register with the driver with io system will it be
possible to register the interrupt handler for the USB host controller
driver through the 'intConnect' system call? Will the handler provided
through the API 'intConnect' in this case get invoked when we get an
interrupt for the USB Host controller?
Please help provide the info if any.
Thanks,
Monisha.
-
Re: Vxworks USB host controller drivers
If think you'd be ok using your own API and bypassing the driver layer
provided by vxWorks. The ISR mechanism should be independent of the io
drivers. Assuming the usb is connected via PCI, you should use
pciIntConnect . pci interrupts done this way are chained - ie
all the ISR on the same level will all get called. Using intConnect,
depending on the BSP vendor, sometimes they chain all the ISRs, and
sometimes they just replace the one ISR on the vector.
If your BSP has it, so a sysIsrShow after the "connect" is called - it
may list them all. Otherwise, you have to write a command to go
throught the intTable yourself.
As a test, you can do an "connect" from the shell, and make logMsg the
ISR - that should output a message after the interrrupt.
Note someone will still have to "clear" the interrupt, otherwise,
you'll soon get a workQpanic.
Good luck,
lc