summaryrefslogtreecommitdiff
path: root/usb-eth
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2013-02-01 01:50:37 +0000
committerChristian Pointner <equinox@spreadspace.org>2013-02-01 01:50:37 +0000
commit75c7c02062f5c84f04b359b98c81792c413d2efa (patch)
treeeeba4f29bdc4c8fd380dc5aa5b6b12f13869eea8 /usb-eth
parentManufacturer and Product name now changeable by Makefile (diff)
receiving a ethernet packet works
git-svn-id: https://svn.spreadspace.org/avr/trunk@111 aa12f405-d877-488e-9caf-2d797e2a1cc7
Diffstat (limited to 'usb-eth')
-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();
}
}