Development environment on Linux: arm compilers

Hi all,

I’m trying to set up the dev environment on Ubuntu 20.02.

I’ve downloaded the arm compilers (gcc-arm-none-eabi-9-2020-q2-update) - but what do I do with them? I’ve unpacked the bz2 but there doesn’t seem to be an install script. Do I just need one of the binaries or do I need to install the various libs as well?

Many thanks!

OK, so there’s packages for Ubuntu:

sudo apt install gcc-arm-none-eabi dfu-util

(Thanks Tom!)

If there isn’t an installer for your Linux flavour then the best bet is to unpack it to a single separate directory and add that to your path in the Makefile. Also if you are compiling on an ARM machine (e.g. Pi4) be very careful that gcc-arm-none… include files don’t get replaced with with gcc-arm-linux… include files during compilation due to priority in the PATH. (just been there … don’t that ! argggh)

To install the compiler as downloaded from ARMs website, you can add it to your PATH variable (in .rc_local or similar).

Packages from the distro will probably work, but a word of warning, the packages in the linux distro can often be out of date. I haven’t had a problem with dfu-util, but there are a few additional warnings that pop up when building with the arm-none-eabi from debian’s apt-packages. And certain things (like openocd) are too out of date to even recognize the Daisy’s processor.

Thanks, for the arm downloads - there’s the ‘bin’ and ‘lib’ - what are the env/path variables I need to link this against?

For what it’s worth, while the distro packages produce some warnings, and dfu-util also produces some warning messages - it does all seem to work as advertised.

It would be really helpful if @mikedb or @shensley could give some details on how to handle both ‘bin’ and ‘lib’ (or whether ‘lib’ is unnecessary).

Many thanks!!!

bin and lib are both necessary. I just download the whole arm package to a separate directory not in PATH and then refer to it at the top of the makefile, but others do it differently

On the ArchLinux:
pacman -S arm-none-eabi-newlib arm-none-eabi-gcc dfu-util