The GNU Embedded Toolchain for Arm is a ready-to-use, open source suite of tools for C, C++ and Assembly programming targeting Arm Cortex-M and Cortex-R family of processors. It includes the GNU Compiler (GCC) and is available free of charge directly from Arm for embedded software development on Windows, Linux and macOS operating systems.
This repository is the original Linux (64-bit) version of the GNU Compiler from Arm packaged for Visual Studio Code:
In Visual Studio Code goto extensions (shift+ctrl+x), search for 'metalcode-eu' and install the extension that is suited for your operating system.
The extension has four paths for the toolchain. You can use this in the tasks.json.
- arm-none-eabi.bin
- arm-none-eabi.include
- arm-none-eabi.lib
- arm-none-eabi.libgcc
Here is an example of tasks.json for GNU make.
{
"version": "2.0.0",
"tasks": [
{
"label": "build firmware",
"type": "shell",
"command": "make test",
"options": {
"env": {
"INCLUDE": "${config:arm-none-eabi.include}",
"LIB": "${config:arm-none-eabi.lib}",
"LIBGCC": "${config:arm-none-eabi.libgcc}/thumb/v6-m/libgcc.a",
}
},
"osx": {
"options": {
"env": {
"PATH": "${config:arm-none-eabi.bin}:${env:PATH}",
}
},
},
"linux": {
"options": {
"env": {
"PATH": "${config:arm-none-eabi.bin}:${env:PATH}",
}
},
},
"windows": {
"options": {
"env": {
"PATH": "${config:arm-none-eabi.bin};${env:PATH}",
}
},
},
"group": {
"kind": "build",
"isDefault": true,
},
"problemMatcher": "$gcc"
}
]
}With the following makefile:
.PHONY: test
test:
@echo $(PATH)
@echo $(INCLUDE)
@echo $(LIB)
@echo $(GCCLIB)Fixed typo in path to repository causing a wrong link in the marketplace.
Added a path to the libgcc files.
- arm-none-eabi.libgcc
When you do bare metal development, you often exclude all standard libraries but you still need libgcc.a for integer division etc. The path to this file contains a version number that changes with every release of the toolchain. Using this variable you do not need to update your makefiles with every new release of the toolchain.
Version 7-2018-q2-update for Linux. Added script to create symlinks in /usr/local/bin.
Operating system specific PATH environment variable.
Version 7-2017-q4-major for Linux (64-bit) Released: December 18, 2017



