Набор инструментов Arm GNU (ранее известный как набор инструментов GNU Arm Embedded) представляет собой набор пакетов,
таких как GCC (GNU Compiler Collection), Binutils, GDB и другие. Он используется для разработки программного обеспечения встраиваемых систем.
Этот набор инструментов предназначен для семейств 32-разрядных процессоров ARM Cortex-A, ARM Cortex-M и ARM Cortex-R.
В этом руководстве показано, как установить набор инструментов Arm GNU в Ubuntu 20.04.
## Установка
1. Скачиваем архив с официального сайта [ARM GNU Toolchain](https://developer.arm.com/downloads/-/gnu-rm):
```sh
ARM_TOOLCHAIN_VERSION=$(curl -s https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads | grep -Po '
Version \K.+(?=
)')
curl -Lo gcc-arm-none-eabi.tar.xz "https://developer.arm.com/-/media/Files/downloads/gnu/${ARM_TOOLCHAIN_VERSION}/binrel/arm-gnu-toolchain-${ARM_TOOLCHAIN_VERSION}-x86_64-arm-none-eabi.tar.xz"
```
2. Создаем новый каталог для хранения файлов набора инструментов:
```sh
sudo mkdir /opt/gcc-arm-none-eabi
```
3. Распаковываем файлы в только что созданный каталог:
```sh
sudo tar xf gcc-arm-none-eabi.tar.xz --strip-components=1 -C /opt/gcc-arm-none-eabi
```
4. Добавляем каталог `/opt/gcc-arm-none-eabi/bin` в переменную окружения `PATH`:
```sh
echo 'export PATH=$PATH:/opt/gcc-arm-none-eabi/bin' | sudo tee -a /etc/profile.d/gcc-arm-none-eabi.sh
```
5. Загружаем профиль, чтобы изменения вступили в силу (или можно выйти из системы и заново войти в нее или перазагрузить компьютер):
```sh
source /etc/profile
```
6. Можем проверить верси компиляторов:
```sh
arm-none-eabi-gcc --version
arm-none-eabi-g++ --version
```
7. Удаляем ненужный архивный файл:
```sh
rm -rf gcc-arm-none-eabi.tar.xz
```
## Проверка
Проверяем, что набор инструментов не только установился, но и работает.
- Создаем файл `main.c`
```sh
nano main.c
```
- Вставляем в файл следующий код:
```cpp
// main.c
#include
int main() {
printf("Hello world\n");
return 0;
}
```
- Сохраняем файл, закрываем редактор (Ctl+S, Ctrl+X).
- Компилируем код:
```sh
arm-none-eabi-gcc --specs=rdimon.specs main.c -o test
```
- Командой `file` убеждаемся, что исполняемый файл предназначен для архитектуры ARM.
```sh
file test
```
```sh
test: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, with debug_info, not stripped
```
## Удаление
Если нужно удалить набор инструментов GNU Arm Embedded, то удаляем каталог установки:
```sh
sudo rm -rf /opt/gcc-arm-none-eabi
```
и удаляем файл `gcc-arm-none-eabi.sh`, который используется для установки переменной среды:
```sh
sudo rm -rf /etc/profile.d/gcc-arm-none-eabi.sh
```