Part Number: TMDSCNCD28388D
Other Parts Discussed in Thread: C2000WARE
Hi,
I'm testing the enet_lwip example project in the F28388D controlCARD evaluation (TMDSCNCD28388D). The webserver works, I can see the “lwIP - Interactive Example” web page and the webserver responds to the GET requests.
But verifying the application in depth, I'm facing the following problems:
- it is not clear because the variable “systickPeriodValue” is set to 15000000; in the Concerto library the system timer interrupt period was set to 10ms. In the example, the variable “systickPeriodValue” is used for the system timer interrupt period and to update the lwIP Ethernet timer by the lwIPTimer function. Supposing the CM clock frequency is 125MHz (I do not know which c28x1 project is used, so I do not know the system clock configurations), the system timer interrupt period is 120ms and the lwIP Ethernet timer is incremented with the systickPeriodValue value.
- if I add the DEBUG symbol in the CCS “Predefined Symbols” window to enable the LWIP_PLATFORM_ASSERT macro, the application stops in the “Error handling function”. The lwip stack expected that the Ethernet_Pkt_Desc structures (pktDescriptorRXCustom) are allocated in the HEAP RAM.In the example, pktDescriptorRXCustom is a global array.
Moreover it is not clear for me why it is necessary to use the custom callback functions in this example
//
// Assign the callbacks for Getting packet buffer when needed
// Releasing the TxPacketBuffer on Transmit interrupt callbacks
// Receive packet callback on Receive packet completion interrupt
//
pInitCfg->pfcbRxPacket = &Ethernet_receivePacketCallbackCustom;
pInitCfg->pfcbGetPacket = &Ethernet_getPacketBufferCustom;
pInitCfg->pfcbFreePacket = &Ethernet_releaseTxPacketBufferCustom;
- if I continually reload the webpage (for instance, keeping pressed CTRL+R buttons to reload the page on Firefox browser) the webserver crashes. I observed that many “three-way handshake” during the TCP connections remain pending causing TCP retransmission packets on both sides (client, server).
I understand the enet_lwip project is only an example and the application improvement is a developer care but any help is really appreciated.
Thanks in advance,
Fil
PS
I’m using the following library and IDE:
C2000Ware_2_01_00_00
CCS 9.2.0.00013
