Simon Kallweit wrote:
> Chris, do you have any example code using your driver?
There's the high-level driver for my application, but that's quite
involved and will probably obscure more than it illuminates...
> I may be working on USB serial and ethernet support.
Ethernet for the STM32? I'd considered having a stab at a driver for
one of the SPI based Ethernet chips (either the Micrel or Microchip) but
just don't have the time right now.
> The USB serial driver at least seems to be tailored
> for the AT91 driver right now and cannot be used generically yet. We
> could change that to use dynamic setup of endpoints, which I think would
> be a great idea.
I've just had a look at the code and it shouldn't be too hard. The key
change is that in order to obtain a handle on the endpoint data
structures you need to wait for endpoint configuration to complete
(which the serial driver does anyway):
//
--------------------------------------------------------------------------
// Block the calling thread until the USB is configured.
void
usbs_serial_wait_until_configured(void)
{
cyg_mutex_lock(&usbs_serial_lock);
while (usbs_serial_state != USBS_STATE_CONFIGURED)
cyg_cond_wait(&usbs_serial_state_cond);
cyg_mutex_unlock(&usbs_serial_lock);
}
Then you can get a handle on the endpoint data structures by calling one
of the following functions (see the STM32 USB header).
cyg_usbs_cortexm_stm32_tx_endpoint (...)
cyg_usbs_cortexm_stm32_rx_endpoint (...)
This replaces the static way of doing it, where the following lines from
the USB serial driver specify the statically allocated endpoint data
structures:
extern usbs_tx_endpoint CYGDAT_IO_USB_SLAVE_SERIAL_TX_EP;
extern usbs_rx_endpoint CYGDAT_IO_USB_SLAVE_SERIAL_RX_EP;
And these are hooked directly into the following static data structure:
usbs_serial usbs_ser0 = {
tx_ep: TX_EP,
rx_ep: RX_EP,
tx_result: 0,
rx_result: 0,
};
Everything else looks fine. The STM32 driver should automatically parse
the device descriptors so that it looks like the 'standard' serial
device. If you don't have any luck with it I might have time to play
with it at the weekend.
Chris.