FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [March 2016 Threads] FreeRTOS+TCP with MicroBlaze_Kintex7_EthernetLitePosted by logicanalyzer on March 24, 2016 The FreeRTOSV8.2.3 MicroBlazeKintex7EthernetLite demo has a emaclite driver for lwIP.
I want to use FreeRTOS+TCP instead. Is there a FreeRTOS+TCP compatible driver for for the Xilinx emaclite core?
If not, how difficult would it be to adapt the lwIP emaclite driver to FreeRTOS+TCP?
-- John
FreeRTOS+TCP with MicroBlaze_Kintex7_EthernetLitePosted by heinbali01 on March 25, 2016 Hi John,
Have you had a look at the porting guide already?
Your function xNetworkInterfaceInitialise() will be called at regular intervals until it returns pdPASS . So as long as the interface is not ready (e.g. PHY Link Status low), you return pdFAIL .
Once it has returned pdPASS, two things will happen:
You could start with e.g. one of these drivers:
FreeRTOS-Plus-TCP/portable/NetworkInterface/Zynq/NetworkInterface.c
FreeRTOS-Plus-TCP/portable/NetworkInterface/ATSAM4E/NetworkInterface.c
Make a choice between one of these source files:
FreeRTOS-Plus-TCP/portable/BufferManagement/BufferAllocation_1.c
FreeRTOS-Plus-TCP/portable/BufferManagement/BufferAllocation_2.c
Once it works, you can look at optimisations, such as:
#define ipconfigDRIVER_INCLUDED_TX_IP_CHECKSUM ( 1 )
#define ipconfigDRIVER_INCLUDED_RX_IP_CHECKSUM ( 1 )
#define ipconfigETHERNET_DRIVER_FILTERS_PACKETS ( 1 )
#define ipconfigUSE_LINKED_RX_MESSAGES ( 1 )
#define ipconfigZERO_COPY_RX_DRIVER ( 1 )
#define ipconfigZERO_COPY_TX_DRIVER ( 1 )
If you have specific questions about porting you can also write to us directly
Regards.
FreeRTOS+TCP with MicroBlaze_Kintex7_EthernetLitePosted by heinbali01 on March 25, 2016 After I pressed "Post" in my last message, it said that there was a parsing error. That is now repaired
FreeRTOS+TCP with MicroBlaze_Kintex7_EthernetLitePosted by logicanalyzer on March 25, 2016 Thanks for the reply. Let me restate my question.
The FreeRTOSV8.2.3 release has a demo for the Xinlix MicroBlaze processor on a Xilinx KC705 FPGA development board. The MicroBlazeKintex7_EthernetLite demo uses the light weight IP stack ("lwIP") and the Xilinx "emaclite" driver.
I want to use FreeRTOS+TCP instead of lwIP. Is there any chance of using the lwIP "emaclite" driver with FreeRTOS+TCP? Or is the FreeRTOS+TCP driver model so different that the lwIP driver can't be used, and a new, FreeRTOS+TCP compatible driver must be developed?
Alternately, is there a Xilinx emaclite driver for FreeRTOS+TCP?
FreeRTOS+TCP with MicroBlaze_Kintex7_EthernetLitePosted by rtel on March 26, 2016 In any TCP/IP stack the drivers can be viewed at two levels:
1) The low level network input and output functions
2) The functions that interface the low level network input and output
functions with the TCP/IP stack.
The hardest part is getting (1) to work. In this case Xilinx provide
this for you, and it is the Xilinx low level drivers that are used in
the lwIP example.
(2) is just wrapping the low level drivers in a function that has the
prototype and behaviour expected by the TCP/IP stack - which is a lot
simpler than writing and debugging the drivers in the first place. The
prototype of these interface functions is not compatible between lwIP
and FreeRTOS+TCP, but as you don't need to create the low level input
and output functions, it should not be difficult porting to
FreeRTOS+TCP. Hein has already linked to the porting documentation, and
there are several examples in the FreeRTOS+TCP download.
As always, start with the easiest thing first - don't try and do
anything cleaver like have a 100% zero copy driver. Just get the code
working in the simplest way possible and only after it is working assess
whether it meets your performance acquirements, and only if it does not
meet your performance requirements adapt the simple working driver into
something more complex.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|