Including FreeRTOS+ TCP in a FreeRTOS project

fastian12 wrote on Friday, July 28, 2017:

Hy…I’m working to include FreeRTOS+ TCP in my FreeRTOS project. I have followed all the steps given in following FreeRTOS link.
http://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/TCP_Networking_Tutorial_Adding_Source_Files.html

But When I try to build my project. It gives me following error:

make: *** No rule to make target TCPEchoClient_SingleTasks.o', needed by RTOSDemo.elf’. Stop. RTOSDemo C/C++ Problem

If anybody has face this issue earlier. Please help me to resolve it. Thanks

heinbali01 wrote on Friday, July 28, 2017:

Hi Muhammad, what platform are you using?

It looks like any of these files is missing in your project:

    FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_TCP_Demos/TCPEchoClient_SingleTasks.c
    FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_and_FAT_Windows_Simulator/DemoTasks/TCPEchoClient_SingleTasks.c
    FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/DemoTasks/TCPEchoClient_SingleTasks.c

fastian12 wrote on Monday, July 31, 2017:

Hi Hein, Thanks for your help.

I’m using ZC702 HW Platform.

I have included paths of the directories where the files you mentioned in your comment exists. But it gives me the same error.

Basically I want to include FreeRTOS+ TCP in my Blinky Demo Application provided by FreeRTOS for ZC702 HW Platform.

heinbali01 wrote on Monday, July 31, 2017:

If you’re working on ZC702, you can also try the FreeRTOS+TCP Zynq project:

    FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_and_FAT_Zynq_SDK

That already includes +TCP.

heinbali01 wrote on Monday, July 31, 2017:

Here I’m attaching the latest version of the driver for Zynq.
Make sure that you project does not contain the previous versions of these files:

emacpsif.h
emacpsif_dma.c
emacpsif_hw.c
emacpsif_hw.h
emacpsif_physpeed.c
xtopology.h

fastian12 wrote on Monday, July 31, 2017:

Basically, First I have used this Demo:

FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_and_FAT_Zynq_SDK

It was working fine with my TCP application.

But when i included my basic application (that is used to capture some interrupts from MIO pins) in this Demo, it doesnot capture external interrupts. so I was moved here to include FreeRTOS+ TCP DEMO in the project.

So I was not sure whether I can use FreeRTOS_Plus_TCP_and_FAT_Zynq_SDK Demo for Interrupt capture application or not. that’s why i was moved here to include TCP+ application in my project.

fastian12 wrote on Monday, July 31, 2017:

XScuGic_Config *pxGICConfig;
BaseType_t xStatus;

pxGICConfig = XScuGic_LookupConfig( XPAR_SCUGIC_SINGLE_DEVICE_ID );

configASSERT( pxGICConfig );
configASSERT( pxGICConfig->CpuBaseAddress == ( configINTERRUPT_CONTROLLER_BASE_ADDRESS + configINTERRUPT_CONTROLLER_CPU_INTERFACE_OFFSET ) );
configASSERT( pxGICConfig->DistBaseAddress == configINTERRUPT_CONTROLLER_BASE_ADDRESS );

xStatus = XScuGic_CfgInitialize( &xInterruptController, pxGICConfig, pxGICConfig->CpuBaseAddress );
configASSERT( xStatus == XST_SUCCESS );
( void ) xStatus;

XGpioPs_Config *pxConfigPtr;
BaseType_t xStatus1;

pxConfigPtr = XGpioPs_LookupConfig(XPAR_XGPIOPS_0_DEVICE_ID);
xStatus1 = XGpioPs_CfgInitialize(&xGpio, pxConfigPtr,pxConfigPtr->BaseAddr);
configASSERT( xStatus1 == XST_SUCCESS );
( void ) xStatus1;


XGpioPs_SetDirectionPin(&xGpio, ZYNQ_GPIO_INTERRUPT_PIN_JE1, 0);

XScuGic_Connect(&xInterruptController, GPIO_INTERRUPT_ID,
                    (Xil_ExceptionHandler)XGpioPs_IntrHandler,
                    &xGpio);


XGpioPs_SetIntrTypePin(&xGpio, ZYNQ_GPIO_INTERRUPT_PIN_JE1, XGPIOPS_IRQ_TYPE_EDGE_RISING);

XGpioPs_SetCallbackHandler(&xGpio, (void *)&xGpio, (void *)GPIOIntrHandler);

xil_printf(“Declaration Function is called \r\n”);

XGpioPs_IntrEnablePin(&xGpio, ZYNQ_GPIO_INTERRUPT_PIN_JE1);

XScuGic_Enable(&xInterruptController, GPIO_INTERRUPT_ID);

This is the code that I have used for interrupt enabling in freeRTOS+ TCP. but when it reaches to the line XScuGic_Enable, it stucks.