FreeRTOS+TCP on Zynq 7000 (MicroZed) include source file problem

Hi,

I am working with Vivado/SDK 2019.1 and have a FreeRTOS10 project up and running. Now I would like to add TCP/IP functionality and found general instructions how to include the source files here

What I did:

  1. I downloaded FreeRTOS 10.3.1 and copied the necessary TCP source files into my project’s workspace.

  2. Set the compiler’s inlude path and added the path to the header files.

  3. As FreeRTOSIPConfig.h file I copied the one that comes with the TCP_Minimal_Windows_Simulator demo included in the FreeRTOS download. I added defines for ipconfigUSE_LINKED_RX_MESSAGES, ipconfigNIC_N_TX_DESC and ipconfigNIC_N_RX_DESC to get rid of some error messages.

I copied that file to my file structure and specified an include path within my project. In this way I got rid of the error message that FreeRTOSIPConfig.h is missing but now I have the following error messages:

  1. cannot find -l-Wl,–start-group,-lxil,-lfreertos,-lgcc,-lc,–end-group
  2. cannot find -l-Wl,–start-group,-lxilffs,-lxil,-lgcc,-lc,–end-group
    3.make: *** [makefile:41: tcptestap.elf] Error 1

Can someone please help me understand what I am doing wrong and why these messages come up. Am I using a wrong config file? Am I including the files in the wrong location?

Any help would be much appreciated.

Thanks!

Hi @DAS,

The problem you are seeing is the linker is not finding the xilinx and FreeRTOS libraries. You need to configure the path to the Xilinx libs folder in the BSP folder for the linker library path settings in the Xilinx SDK.

Hope that helps.

Pete

Daniel,

I also think that your compiler can not find the proper libraries. Mind you that eg. -lxil will evaluate to libxil.a.
A library path is indicated with the -L option.

On github you find a complete project for Zynq 7000 and the secure library.

On freertos.org there is an old ZIP file that contains a working Zynq project. It can be used for Microzed, see “FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_and_FAT_Zynq_SDK”. It also contains an FTP and a HTML server. Do not use the library sources from the 2016 ZIP file, it’s a bit old by now.

You will find documentation about how to use it on freertos.org.

Any further questions about FreeRTOS+TCP can be asked here.

Dear Pete and Hein,

Thank you for your messages.

@pete-pjb. I do not understand why the linker does not find the Xilinx and FreeRTOS libraries anymore. Everything works fine until I include the FreeRTOSIPConfig.h file. I tried adding a new library search path in the linker settings but without success. The output in the console states that the path is correctly set but SDK can not find the libs under this directory. What made me wonder is that the last error message before the above mentioned was that the FreeRTOSIPConfig.h was missing. By creating a new(empty) header file in the Application Project I could not get rid of that message. I would have assumed that the compiler would now be able to include this header but would give me another error message because all the defines inside this file are still missing. Only by adding an include path to that file I was able to get rid of the error message but ended up with the ones mentioned above. Do you see any chance that the errors are related to that. My knowledge about that is very basic.

@htibosch. I downloaded the files that you mentioned and tried importing the the TCP+FAT example. I created a src folder within my workspace. Extracted all the files into it and followed the instructions given by the link. I imported and copied the example files to my project and workspace, respectively. But SDK is giving me the following error message:

The Hardware Project referenced by this BSP (RTOSDemo_bsp) was not found in this workspace. As a result, this BSP will not build properly. To fix this error, please import the associated hardware project or recreate a new BSP targeting an existing hardware platform.

Although the way to fix the problem is given within the message… I could not. The MicroZed_hw_platform folder is inside the workspace and the bsp is also referencing the correct hw-project. Are there additional file missing inside this folder? Any hint how I can fix it? In the console I read the error messages that some of the included libraries(in the bsp) can not be found in the repository. This is due to the version number. Is there an easy way to update the libs? What can I do about it? Have you ever run the examples on SDK2019.1? I also tried to run it with SDK2016.4 but with the same results.

Finally, I have to admitt that i do not know what to use the files from github for… Sorry, could you please explain what I need them for.

Sorry to bother you guys!

OK, I got the demo to work following this.

Sorry for not doing better research in advance.

Ciao

Thanks for reporting back. Glad it works now! It is a bit of a bump to get started with Zynq for the first time.

It is good that all posts are kept on the FreeRTOS-forum.

PS. in another thread I read that the Vitis 2020.1 compiler seems to produce less efficient code. Keep that in mind.