IT Академия Samsung <!-- https://lindevs.com/install-arm-gnu-toolchain-on-ubuntu /--> Набор инструментов 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 '<h4>Version \K.+(?=</h4>)') 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. Можем проверить версиb компиляторов: ```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 <stdio.h> 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 ```