FreeRTOS+TCP in AMD/Xilinx Vitis 2024

What is the correct way to use FreeRTOS and FreeRTOS+TCP in a AMD/Xilinx Vivado/Vitis 2024 (Unified IDE) project?
As far as I can tell the FreeRTOS+TCP ports don’t work with Vitis’ new SDT approach of communicating HW meta data.
What am I supposed to do about this?

@LinkwitzRiley

We recently had a community contribution as part of PR1227 updating the Xilinx network interface with the new SDT changes, and it is merged to the FreeRTOS+TCP latest main branch on Github.

The author has tested the changes in the PR for FreeRTOS+TCP Xilinx port with new drivers on Vitis 2024.2

1 Like

@tony-josi-aws

Thanks, that’s great news!
However, now I struggle getting Vitis to find the includes:
I’m getting FreeRTOSConfig.h has not been included yet in FreeRTOSIPConfigDefaults.h, probably because of include order. But no matter what I do, I can’t get rid of it.

@LinkwitzRiley

I’m getting FreeRTOSConfig.h has not been included yet in FreeRTOSIPConfigDefaults.h

Compilation of which source file (.c) is leading to that error in FreeRTOSIPConfigDefaults.h?

FreeRTOS.h should always be the first FreeRTOS related header file included in the source files and then FreeRTOS_IP.h. Check if that’s the case in any application source/include files that include FreeRTOSIPConfigDefaults.h.

You can also take a look at this page for folder structure information.

I think the error happens before actual compilation.
I think the #error directive in FreeRTOSIPConfigDefaults.h gets triggered.

I believe this error is reported when you are building the app_component. Did you try a clean build after changing the include order?

If that doesn’t work, try commenting out the #error line that’s causing the error and then build it to see if you are getting any other errors. This error might be a side effect of some other errors.