summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usb-eth/usb-eth.c66
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();
}
}