git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4258 35acf78f-673a-0410-8e92-d51de3d6d3f4

master
gdisirio 2012-06-03 09:18:38 +00:00
parent b8d35693b4
commit 2e56d8e14e
2 changed files with 15 additions and 15 deletions

View File

@ -71,7 +71,7 @@ static union {
/**
* @brief Buffer for the EP0 setup packets.
*/
static uint8_t ep8setup_buffer[8];
static uint8_t ep0setup_buffer[8];
/**
* @brief EP0 initialization structure.
@ -85,7 +85,7 @@ static const USBEndpointConfig ep0config = {
0x40,
&ep0_state.in,
&ep0_state.out,
ep8setup_buffer
ep0setup_buffer
};
/*===========================================================================*/

View File

@ -571,20 +571,20 @@ void _usb_ep0in(USBDriver *usbp, usbep_t ep) {
switch (usbp->ep0state) {
case USB_EP0_TX:
max = usb_lld_fetch_word(&usbp->setup[6]);
/* If the transmitted size is less than the requested size and it is a
multiple of the maximum packet size then a zero size packet must be
transmitted.*/
if ((usbp->ep0n < max) &&
((usbp->ep0n % usbp->epc[0]->in_maxsize) == 0)) {
usb_lld_prepare_transmit(usbp, 0, NULL, 0);
usb_lld_start_in(usbp, 0);
return;
}
/* If the transmitted size is less than the requested size and it is a
multiple of the maximum packet size then a zero size packet must be
transmitted.*/
if ((usbp->ep0n < max) &&
((usbp->ep0n % usbp->epc[0]->in_maxsize) == 0)) {
usb_lld_prepare_transmit(usbp, 0, NULL, 0);
usb_lld_start_in(usbp, 0);
return;
}
/* Transmit phase over, receiving the zero sized status packet.*/
usbp->ep0state = USB_EP0_WAITING_STS;
usb_lld_prepare_receive(usbp, 0, NULL, 0);
usb_lld_start_out(usbp, 0);
/* Transmit phase over, receiving the zero sized status packet.*/
usbp->ep0state = USB_EP0_WAITING_STS;
usb_lld_prepare_receive(usbp, 0, NULL, 0);
usb_lld_start_out(usbp, 0);
return;
case USB_EP0_SENDING_STS:
/* Status packet sent, invoking the callback if defined.*/