This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Want to try out stable GCC 7 on your ARM microcontroller?

EDIT: Stable GCC 7.1.0 is already released - see first reply below for details!


 

If you're very impatient waiting for the full GCC 7.1.0 release (expected this month), you can try experimental GCC 7 version with your ARM microcontroller right now (;

$ arm-none-eabi-gcc --version
arm-none-eabi-gcc (bleeding-edge-toolchain) 7.0.1 20170402 (experimental)
Copyright (C) 2017 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.

https://github.com/FreddieChopin/bleeding-edge-toolchain/tree/gcc-7-experimental

The script is able to produce a working toolchain for Linux. It is also possible to cross-compile a toolchain for Windows (32-bit or 64-bit) - either in Linux or in "Bash on Ubuntu on Windows" (I've heard it can be done, but the process is painfully slow - who would expect that? (; ).

I've tested that toolchain briefly and it appears to work fine (;

  • Stable GCC 7.1.0 was released yesterday, and you can already use it with your ARM microcontrollers (;

    Components:

    • gcc-7.1.0
    • newlib-2.5.0.20170421
    • binutils-2.28
    • gdb-7.12.1
    • expat-2.2.0
    • gmp-6.1.2
    • isl-0.18
    • libiconv-1.15 (Windows only)
    • mpc-1.0.3
    • mpfr-3.1.5
    • python-2.7.13 (Windows only)
    • zlib-1.2.11

    $ arm-none-eabi-gcc --version
    arm-none-eabi-gcc (bleeding-edge-toolchain) 7.1.0
    Copyright (C) 2017 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.

    You can download Windows binaries (both 32-bit and 64-bit) and the Linux script from my personal website - http://www.freddiechopin.info/ > Download > Software > bleeding-edge-toolchain

  • Seems big-endian Cortex-R is still not part of the main-line GCC :(
  • Yes, you are right - none of the configurations from the new "rmprofile" uses big-endian. But this is definitely something that can be added and in fact two previous version of bleeding-edge-toolchain (with gcc 6) had such configuration for ARMv7-R. This configuration was contributed on github, but since in gcc 7 things changed and the user which contributed that patch did not reply I had to remove this functionality...

    If anyone is interested, here is the commit that removes that patch

    github.com/.../c8911853738dd5e1fa0d833c317da3806a92464b

    If anyone will be able to port it to gcc 7 and maintain it we can integrate that again. Of course it would be best if ARM would push such big-endian support upstream - if there is a demand for something like that.

  • I did patch the launchpad.net version before. Actually TI should push ARM to push this upstream. Though TI might be interested that customers use their compiler for the TMS570 instead of GCC.
  • Ok, they just moved the multilib config into t-rmprofile. There the patch has to be applied.
    *hmm* I will give it a try ...
  • Generally the patch to add such big-endian support is not very hard to make, but I have absolutely no means to test such feature, so I do not think I am the right person to do that... Beside different location, the contents of the file is "reorganized", so the porting probably will not be trivial. In any case - if you face some problems, let me know, I cannot say that I fully understand the syntax of these files, but I have some knowledge about that, so maybe I will be able to help. You can also try contacting the person who submitted the original patch to bleeding-edge-toolchain.