A PicoTCP driver for the lpc1768 mbed board
Dependents: lpc1768-picotcp-demo TCPSocket_HelloWorld_PicoTCP Pico_TCP_UDP_Test TCPSocket_HelloWorld_PicoTCP ... more
Diff: pico_dev_mbed_emac.cpp
- Revision:
- 7:608779751f85
- Parent:
- 6:32c8501737cd
- Child:
- 8:0b675bdd074f
--- a/pico_dev_mbed_emac.cpp Sun Jun 16 19:45:09 2013 +0000 +++ b/pico_dev_mbed_emac.cpp Wed Jul 03 08:00:05 2013 +0000 @@ -76,7 +76,6 @@ /******************** * Global variables * ********************/ -//uint16_t lBuffer[ETH_MAX_MTU>>1] __attribute__((section("AHBSRAM0"))); /******************* * Local variables * @@ -374,7 +373,7 @@ // Set the Ethernet MAC Address registers LPC_EMAC->SA0 = (mbdev->mac[0] << 8) | mbdev->mac[1]; - LPC_EMAC->SA1 = (mbdev->mac[2] << 8) | mbdev->mac[2]; + LPC_EMAC->SA1 = (mbdev->mac[2] << 8) | mbdev->mac[3]; LPC_EMAC->SA2 = (mbdev->mac[4] << 8) | mbdev->mac[5]; // Initialize Tx and Rx DMA Descriptors @@ -591,22 +590,7 @@ uint32_t RxLen = (info & RINFO_SIZE) - 3u; rptr = (uint16_t *)(mbdev->dma_data->p_rx_desc[index].Packet); - if(!( (RxLen >= ETH_MAX_MTU) || (info & RINFO_ERR_MASK) ) ) - { - // copy uin16_t (that's per 2 bytes) data content // Uhm... why?? - uint16_t lRxLen = RxLen>>1; - //uint16_t * lptr = lBuffer; - //while(lRxLen) - //{ - // *lptr++ = *rptr++; - // lRxLen--; - //} - //if(RxLen & 0x1) - // *lptr = (*rptr) & 0xFF ; - - //printf("ETH> recv %d bytes: %x:%x\r\n", RxLen, lBuffer[0],lBuffer[1]); - - // call the stack and pass this packet to it + if(!( (RxLen >= ETH_MAX_MTU) || (info & RINFO_ERR_MASK) ) ) { pico_stack_recv((struct pico_device *)mbdev,(uint8_t *)rptr,RxLen); } else { //printf("RxError?\r\n"); @@ -617,8 +601,6 @@ index = (index+1)%NUM_RX_FRAG; LPC_EMAC->RxConsumeIndex = index; - // Toggle RX LED - //led_rx= !led_rx; } return retval;