FreeRTOS vs 160112_FreeRTOS_Labs

sting854 wrote on Monday, April 25, 2016:

I want to use the FreeRTOS-Plus-TCP. Do I use the FreeROS base from or from the 160112_FreeRTOS_Labs at

it looks like the files are a different size.

heinbali01 wrote on Monday, April 25, 2016:

Hi Ray,

160112_FreeRTOS_Labs was tested and released with the kernel version V8.2.3 That version is included in the ZIP.
It should work equally well with V9.0.0 and higher.

heinbali01 wrote on Monday, April 25, 2016:

I forgot to ask: what MCU will you use?

There are official FreeRTOS+TCP ports for:

Atmel SAM4E
Xilinx Zynq and ZC702

Other ports have been developed by users, these include:

NXP (Freescale) Kinetis K63F
NXP LPC43xx (similar to LPC18xx)
Altera Cyclone V SoC
TI's TMS570lc4375
Microchip PIC32xx
Atmel UC3A

I’m not sure about the status of each of these projects but just tell which one you’re interested in and I’ll find out,


raymadigan wrote on Wednesday, April 27, 2016:

I am using the Xilinx MicroZed board.

I have another question. I want just plain TCPIP and none of the other protocols, FTP/HTTP/NTP. In my project I create a linked directory to the FreeRTOS-Plus-TCP directory so I can link in the stack and I get all of those other protocols that I also have to provide the headers for.

What is your recommended method of handling this, I don’t want to do it in a different way then your intentions.

raymadigan wrote on Wednesday, April 27, 2016:

Specifically I have to start linking in the FAT libraries because the NTPDemo uses ff-headers.h. My device will not be connected to the internet.

rtel wrote on Wednesday, April 27, 2016:

Is this an Eclipse question? In that, how to get Eclipse to build just
the files you want and not just blindly build every file in the
directory (which is once of Eclipses least helpful habits)?

If so, then you either need to use resource filters to include and/or
exclude files and folders, as described on the link below, or you need
to right click on the file you don’t want to build, then in the pop-up
menu find the “Exclude from build” check box.

heinbali01 wrote on Wednesday, April 27, 2016:

And as far as this is not an Eclipse question:

The FTP/HTTP/NTP protocols are just extra’s, examples of how to use the FreeRTOS+TCP stack.

This means that you can leave out all files under the protocols directory.

Other protocols are selectable through defines:

    #define ipconfigUSE_DHCP                    ( 1 )
    #define ipconfigUSE_LLMNR                   ( 1 )
    #define ipconfigUSE_NBNS                    ( 1 )
    #define ipconfigUSE_DNS                     ( 1 )
    #define ipconfigSUPPORT_OUTGOING_PINGS      ( 1 )

I would recommend to use at least these:

    #define ipconfigTCP_HANG_PROTECTION         ( 1 )
    #define ipconfigTCP_KEEP_ALIVE              ( 1 )
    #define ipconfigREPLY_TO_INCOMING_PINGS     ( 1 )

The use of UDP can not be excluded from +TCP.

You can deselect TCP:

    #define ipconfigUSE_TCP                     ( 0 )

which can be useful for e.g. a UDP-enabled boot-loader.

Specifically I have to start linking in the FAT libraries
because the NTPDemo uses ff-headers.h

Sorry about that.
The reason is that the FreeRTOS+FAT library has two handy functions to transform time:

    /* Equivalent of mktime() : calculates
     * the number of seconds after 1-1-1970. */
    time_t FreeRTOS_mktime( const FF_TimeStruct_t *pxTimeBuf );

    /* Equivalent of gmtime_r() : Fills a 'struct tm'. */
    FF_TimeStruct_t *FreeRTOS_gmtime_r( const time_t *pxTime,
        FF_TimeStruct_t *pxTimeBuf );

These functions are not always available on all every platform / compiler.