Post Go back to editing

[SC573] Using Linux version of ADI's bare-metal GCC toolchain for ARM core

Hi team,

I’m in the process of automating the build for the SC573 ARM and SHARC core applications in a Linux build environment. I’m looking into using the ADI-provided GCC bare-metal toolchain provided in the linux version of CCES 2.8.3. I have compiled a simple hello world program in CCES 2.8.3 for both windows and Linux which both successfully ran on the SC573 EZ-kit.

I was wondering what are the core differences between the two versions? And if I would have any side effects if I compile my application using linux version of GCC?

In addition, The release notes for CCES2.8.3 mention that “Use of CrossCore Embedded Studio Add-Ins other than the Linux Add-In” is not supported. I assume that’s only if I use the CCES IDE? And that I should still be okay if I include the source files directly through cmake etc. (e.g. freeRTOS and lwIP source files)

Comparing the output executables compiled by Windows and Linux CCES 2.8.3 seems to produce similar binaries:

  • Similar size (around 230kB)
  • Binary hex is similar except for:
    • windows vs linux paths
    • Cygnus version with Jenkins
      • Windows: C:/Jenkins/workspace/SSLDD Cygnus (2.8.3)...
      • Linux C:/Jenkins/workspace/SSLDD Cygnus (2.8.1)...

GCC Version info:

Windows

C:\Analog Devices\CrossCore Embedded Studio 2.8.3\ARM\arm-none-eabi\bin>arm-none-eabi-gcc --version arm-none-eabi-gcc (Analog Devices Inc. ARM Tools (3a7f296753c9cb74c82c3a2451f5e75350ba53cc). Distributed as part of CrossCore Embedded Studio and associated add-ins. jenkins-CCES2_8_0_arm_none_eabi_toolchain_win-10 10 edin-stoke.spd.analog.com) 4.8.3 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Linux

/opt/analog/cces/2.8.3/ARM/arm-none-eabi/bin$ arm-none-eabi-gcc --version arm-none-eabi-gcc (Analog Devices Inc. ARM Tools (3a7f296753c9cb74c82c3a2451f5e75350ba53cc). Distributed as part of CrossCore Embedded Studio and associated add-ins. jenkins-CCES2_8_0_arm_none_eabi_toolchain-9 9 edin-stoke.spd.analog.com) 4.8.3 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  • Hi,

    Firstly we would recommend that you move to CCES 2.10.1 if that is possible. CCES 2.8.3 support is for Ubuntu 14.04 and Ubuntu 16.04 and these are approaching their end of LTS period. The CCES 2.10.1 for Linux host release supports 16.04 and  Ubuntu 20.04 (64-bit) with 32-bit compatibility libraries installed.

    Additionally CCES 2.10.1 has more recent versions of the ARM baremetal tools for the ARM Cortex-A5:

    • gcc 10.2.1 (instead of gcc-linaro 4.8-2014.04)
    • binutils 2.35 (instead of 2.24.51)
    • newlib 3.0.0 (instead of 2.1.0)
    • gdb 8.1 (instead of 7.8.1)

    Using CCES 2.10.1 the Linux and Windows hosted versions should be much more similar than you've seen for CCES 2.8.3.  That is because in the later release the sources used are exactly the same and were built on the same machine just using a cross-compiler for Windows. Previously the builds were not as strictly matched.

    For your information when using CCES 2.10.1 we have available a "SHARC and Blackfin Linux Command-Line Tools" addin that will enable batch building for the SC573 SHARC cores on Linux host. See the CCES installation guide available from www.analog.com/cces for details on how to install CCES2.10.1 and the SHARC and Blackfin Linux Command-Line Tools.

    Regarding your question about addin support when building FreeRTOS or LwIP sources from the command-line and not in the IDE, that should not be a problem.

    Regards,
    Stuart.