FreeRTOS Configuration/Version Change

The SDx™ IDE FreeRTOS support uses a pre-built library using the default FreeRTOSConfig.h file included with the v8.2.3 software distribution, along with a predefined linker script.

To change the FreeRTOS v8.2.3 configuration or its linker script, or use a different version of FreeRTOS, follow the steps below:

  1. Copy the folder <path_to_install>/SDx/<version>/platforms/zc702 to a local folder.
  2. To just modify the default linker script, modify the file <path_to_your_platform>/zc702/sw/freertos/lscript.ld.
  3. To change the FreeRTOS configuration (FreeRTOSConfig.h) or version:
    1. Build a FeeRTOS library as libfreertos.a.
    2. Add include files to the folder <path_to_your_platform>/zc702/sw/freertos/include.
    3. Add the library libfreertos.a to <path_to_your_platform>/zc702/sw/freertos/li.
    4. Change the paths in <path_to_your_platform>/zc702/zc702.spfm for the section containing the line ("sdx:os sdx_name="freertos" (sdx:includePaths="/aarch32-none/include and sdx:libraryPaths="/aarch-32-none/lib/freertos").
  4. In your makefile, change the SDSoC platform option from –sds-pf zc702 to –sds-pf <path_to_your_platform>/zc702.
  5. Rebuild the library:
    The SDx IDE folder <path_to_install>/SDx/2016.x/tps/FreeRTOS includes the source files used to build the pre-configured FreeRTOS v8.2.3 library libfreertos.a, along with a simple makefile and an SDSoC_readme.txt file. See the SDSoC_readme.txt file for additional requirements and instructions.
    1. Open a command shell.
    2. Run the SDx IDE <path_to_install>/SDx/2016.x/ script, or settings64.bat, to set up the environment to run command line tools (including the ARM GNU toolchain for the Zynq®-7000 AP SoC).
    3. Copy the folder to a local folder.
    4. Modify FreeRTOSConfig.h.
    5. Run the make command.

If you are not using FreeRTOS v8.2.3, see the notes in the SDSoC_readme.txt file describing how the source was derived from the official software distribution. After uncompressing the ZIP file, a very small number of changes were made (incorporate memcpy, memset and memcmp from the demo application main.c into a library source file and change include file references from Task.h to task.h) but the folder structure is the same as the original. If the folder structure is preserved, the makefile created to build the preconfigured FreeRTOS v8.2.3 library can be used.