diff options
Diffstat (limited to 'usb-eth')
-rw-r--r-- | usb-eth/usb-eth.c | 66 |
1 files changed, 29 insertions, 37 deletions
diff --git a/usb-eth/usb-eth.c b/usb-eth/usb-eth.c index 9ae931a..4bd6dab 100644 --- a/usb-eth/usb-eth.c +++ b/usb-eth/usb-eth.c @@ -39,49 +39,48 @@ #include <LUFA/Drivers/USB/USB.h> #include "lufa-descriptor-rndis.h" -#define ADAPTER_MAC_ADDRESS {0x02, 0x00, 0x02, 0x00, 0x02, 0x00} - /** LUFA RNDIS Class driver interface configuration and state information. This structure is * passed to all RNDIS Class driver functions, so that multiple instances of the same class * within a device can be differentiated from one another. */ USB_ClassInfo_RNDIS_Device_t Ethernet_RNDIS_Interface = - { - .Config = - { - .ControlInterfaceNumber = 0, + { + .Config = + { + .ControlInterfaceNumber = 0, - .DataINEndpointNumber = CDC_TX_EPNUM, - .DataINEndpointSize = CDC_TXRX_EPSIZE, - .DataINEndpointDoubleBank = false, + .DataINEndpointNumber = CDC_TX_EPNUM, + .DataINEndpointSize = CDC_TXRX_EPSIZE, + .DataINEndpointDoubleBank = false, - .DataOUTEndpointNumber = CDC_RX_EPNUM, - .DataOUTEndpointSize = CDC_TXRX_EPSIZE, - .DataOUTEndpointDoubleBank = false, + .DataOUTEndpointNumber = CDC_RX_EPNUM, + .DataOUTEndpointSize = CDC_TXRX_EPSIZE, + .DataOUTEndpointDoubleBank = false, - .NotificationEndpointNumber = CDC_NOTIFICATION_EPNUM, - .NotificationEndpointSize = CDC_NOTIFICATION_EPSIZE, - .NotificationEndpointDoubleBank = false, + .NotificationEndpointNumber = CDC_NOTIFICATION_EPNUM, + .NotificationEndpointSize = CDC_NOTIFICATION_EPSIZE, + .NotificationEndpointDoubleBank = false, - .AdapterVendorDescription = "LUFA RNDIS Demo Adapter", - .AdapterMACAddress = {ADAPTER_MAC_ADDRESS}, - }, - }; + .AdapterVendorDescription = "LUFA RNDIS Demo Adapter", + .AdapterMACAddress = {{0x02, 0x00, 0x02, 0x00, 0x02, 0x00}}, + }, + }; /** Event handler for the library USB Configuration Changed event. */ void EVENT_USB_Device_ConfigurationChanged(void) { - RNDIS_Device_ConfigureEndpoints(&Ethernet_RNDIS_Interface); + RNDIS_Device_ConfigureEndpoints(&Ethernet_RNDIS_Interface); } /** Event handler for the library USB Control Request reception event. */ void EVENT_USB_Device_ControlRequest(void) { - RNDIS_Device_ProcessControlRequest(&Ethernet_RNDIS_Interface); + RNDIS_Device_ProcessControlRequest(&Ethernet_RNDIS_Interface); } /* end LUFA RNDIS Class driver specific definitions*/ +uint8_t recv_buf[1514]; int main(void) { @@ -93,24 +92,17 @@ int main(void) USB_Init(); sei(); + led_off(); for (;;) { - if (RNDIS_Device_IsPacketReceived(&Ethernet_RNDIS_Interface)) - { + if (RNDIS_Device_IsPacketReceived(&Ethernet_RNDIS_Interface)) + { led_on(); - - /* RNDIS_Device_ReadPacket(&Ethernet_RNDIS_Interface, &FrameIN.FrameData, &FrameIN.FrameLength); */ - /* Ethernet_ProcessPacket(&FrameIN, &FrameOUT); */ - - /* if (FrameOUT.FrameLength) */ - /* { */ - /* RNDIS_Device_SendPacket(&Ethernet_RNDIS_Interface, &FrameOUT.FrameData, FrameOUT.FrameLength); */ - /* FrameOUT.FrameLength = 0; */ - /* } */ - + uint16_t len = sizeof(recv_buf); + RNDIS_Device_ReadPacket(&Ethernet_RNDIS_Interface, &recv_buf, &len); led_off(); - } - - RNDIS_Device_USBTask(&Ethernet_RNDIS_Interface); - USB_USBTask(); + } + + RNDIS_Device_USBTask(&Ethernet_RNDIS_Interface); + USB_USBTask(); } } |