Слияние кода завершено, страница обновится автоматически
GNU Tools for ARM Embedded Processors Version: 5 Содержание * Установка исполняемых файлов на Linux * Установка исполняемых файлов на Mac OS X * Установка исполняемых файлов на Windows * Вызов GCC * Использование опций архитектуры * Использование C библиотек * Скрипты линковщика и стартовый код * Примеры * Сервер GDB для аппаратных дебаггеров CMSIS-DAP * Установка исполняемых файлов на Linux * Распакуйте tar-архив в каталог установки, например: $ cd $install_dir && tar xjf gcc-arm-none-eabi-*-yyyymmdd-linux.tar.bz2 Для 64-битных систем требуется 32-битная libc и libncurses для запуска инструментов. Кроме того, если вы хотите использовать сборку gdb python (arm-none-eabi-gdb-py), вам потребуется установить 32-битную версию python2.7. См. https://answers.launchpad.net/gcc-arm-embedded/+faq/2601 Для некоторых версий Ubuntu инструментарий также можно установить через Launchpad PPA по адресу https://launchpad.net/~team-gcc-arm-embedded/+archive/ubuntu/ppa. * Установка исполняемых файлов на Mac OS X * Распакуйте tar-архив в каталог установки, например: $ cd $install_dir && tar xjf gcc-arm-none-eabi-*-yyyymmdd-mac.tar.bz2 * Установка исполняемых файлов на Windows * Запустите установщик (gcc-arm-none-eabi-*-yyyymmdd-win32.exe) и следуйте инструкциям. Инструментарий в zip-пакете для Windows является резервной копией для установщика для тех, кто не может запустить установщик. Необходимо распаковать zip-пакет в правильное место и затем запустить его, следуя инструкциям в следующем разделе.Для использования сборки gdb python (arm-none-eabi-gdb-py) вам потребуется установить 32-битную версию Python 2.7, независимо от того, используется ли 32-битная или 64-битная версия Windows. См. https://www.python.org/download/. * Вызов GCC * На Linux и Mac OS X либо вызовите с полным путем, например: $ $install_dir/gcc-arm-none-eabi-*/bin/arm-none-eabi-gcc Либо установите переменную PATH, например: $ export PATH=$PATH:$install_dir/gcc-arm-none-eabi-*/bin $ arm-none-eabi-gcc На Windows (хотя вышеупомянутые подходы также работают), можно удобнее установить переменные окружения с помощью установщика, или запустить INSTALL_DIR\bin\gccvar.bat для установки переменных окружения для текущего cmd. Для zip-пакета для Windows, после распаковки можно вызвать инструментарий либо с полным путем, например: TOOLCHAIN_UNZIP_DIR\bin\arm-none-eabi-gcc или запустить TOOLCHAIN_UNZIP_DIR\bin\gccvar.bat для установки переменных окружения для текущего cmd. * Варианты использования архитектур *Этот инструментарий создан и оптимизирован для разработки на базе Cortex-A/R/M без операционной системы. Таблица ниже показывает, как вызывать GCC/G++ с правильными параметрами командной строки для вариантов архитектур Cortex-A/R и Cortex-M. | Ядро ARM | Параметры командной строки | multilib | | / Архитектура ARM | | | |------------|--------------------------------------------|--------------| | Cortex-M0+ | -mthumb -mcpu=cortex-m0plus | armv6-m | | Cortex-M0 | -mthumb -mcpu=cortex-m0 | | | Cortex-M1 | -mthumb -mcpu=cortex-m1 | | | |--------------------------------------------| | | | -mthumb -march=armv6-m | | |------------|--------------------------------------------|--------------| | Cortex-M3 | -mthumb -mcpu=cortex-m3 | armv7-m | | |--------------------------------------------| | | | -mthumb -march=armv7-m | | |------------|--------------------------------------------|--------------| | Cortex-M4 | -mthumb -mcpu=cortex-m4 | armv7e-m | | (Без FP) |--------------------------------------------| | | | -mthumb -march=armv7e-m | | |------------|--------------------------------------------|--------------| | Cortex-M4 | -mthumb -mcpu=cortex-m4 -mfloat-abi=softfp | armv7e-m | | (Soft FP) | -mfpu=fpv4-sp-d16 | /softfp | | |--------------------------------------------| | | | -mthumb -march=armv7e-m -mfloat-abi=softfp | | | | -mfpu=fpv4-sp-d16 | | |------------|--------------------------------------------|--------------| | Cortex-M4 | -mthumb -mcpu=cortex-m4 -mfloat-abi=hard | armv7e-m | | (Hard FP) | -mfpu=fpv4-sp-d16 | /fpu | | |--------------------------------------------| | | | -mthumb -march=armv7e-m -mfloat-abi=hard | | | | -mfpu=fpv4-sp-d16 | | |------------|--------------------------------------------|--------------| | Cortex-M7 | -mthumb -mcpu=cortex-m7 | armv7e-m | | (Без FP) |--------------------------------------------| | |------------|--------------------------------------------|--------------| | Cortex-M7 | -mthumb -mcpu=cortex-m7 -mfloat-abi=softfp | armv7e-m | | (Soft FP) | -mfpu=fpv5-sp-d16 | /softfp | | |--------------------------------------------| /fpv5-sp-d16 | | | -mthumb -march=armv7e-m -mfloat-abi=softfp | | | | -mfpu=fpv5-sp-d16 | | | |--------------------------------------------|--------------| | | -mthumb -mcpu=cortex-m7 -mfloat-abi=softfp | armv7e-m | | | -mfpu=fpv5-d16 | /softfp | | |--------------------------------------------| /fpv5-d16 | | | -mthumb -march=armv7e-m -mfloat-abi=softfp | | | | -mfpu=fpv5-d16 | | |------------|--------------------------------------------|--------------| | Cortex-M7 | -mthumb -mcpu=cortex-m7 -mfloat-abi=hard | armv7e-m | | (Hard FP) | -mfpu=fpv5-sp-d16 | /fpu | | |--------------------------------------------| /fpv5-sp-d16 | | | -mthumb -march=armv7e-m -mfloat-abi=hard | | | | -mfpu=fpv5-sp-d16 | | |------------|--------------------------------------------|--------------| | | -mthumb -mcpu=cortex-m7 -mfloat-abi=hard | armv7e-m | | | -mfpu=fpv5-d16 | /fpu | | |--------------------------------------------| /fpv5-d16 | | | -mthumb -march=armv7e-m -mfloat-abi=hard | | | | -mfpu=fpv5-d16 | | |------------|--------------------------------------------|--------------| | ARMv8-M | -mthumb -march=armv8-m.base | armv8-m.base | | Базовый | | | |------------|--------------------------------------------|--------------| | ARMv8-M | -mthumb -march=armv8-m.main | armv8-m.main | | Основной | | | | (Без FP) | | || |------------|--------------------------------------------|--------------| | ARMv8-M | -mthumb -march=armv8-m.main | armv8-m.main | | Основной | -mfloat-abi=softfp -mfpu=fpv5-sp-d16 | /softfp | | (Soft FP) | | /fpv5-sp-d16 | | |--------------------------------------------|--------------| | | -mthumb -march=armv8-m.main | armv8-m.main | | | -mfloat-abi=softfp -mfpu=fpv5-d16 | /softfp | | | | /fpv5-d16 | |------------|--------------------------------------------|--------------| | ARMv8-M | -mthumb -march=armv8-m.main | armv8-m.main | | Основной | -mfloat-abi=hard -mfpu=fpv5-sp-d16 | /fpu | | (Hard FP) | | /fpv5-sp-d16 | | |--------------------------------------------|--------------| | | -mthumb -march=armv8-m.main | armv8-m.main | | | -mfloat-abi=hard -mfpu=fpv5-d16 | /fpu | | | | /fpv5-d16 | |------------|--------------------------------------------|--------------| | Cortex-R4 | [-mthumb] -march=armv7-r | armv7-ar | | Cortex-R5 | | /thumb | | Cortex-R7 | | | | Cortex-R8 | | | | (Без FP) | | | |------------|--------------------------------------------|--------------| | Cortex-R4 | [-mthumb] -march=armv7-r -mfloat-abi=softfp | armv7-ar | | Cortex-R5 | -mfpu=vfpv3-d16 | /thumb | | Cortex-R7 | | /softfp || Cortex-R8 | | | | (Soft FP) | | | |------------|--------------------------------------------|--------------| | Cortex-R4 | [-mthumb] -march=armv7-r -mfloat-abi=hard | armv7-ar | | Cortex-R5 | -mfpu=vfpv3-d16 | /thumb | | Cortex-R7 | | /fpu | | Cortex-R8 | | | | (Hard FP) | | | |------------|--------------------------------------------|--------------| | Cortex-A* | [-mthumb] -march=armv7-a | armv7-ar | | (Без FP) | | /thumb | |------------|--------------------------------------------|--------------| | Cortex-A* | [-mthumb] -march=armv7-a -mfloat-abi=softfp | armv7-ar | | (Soft FP) | -mfpu=vfpv3-d16 | /thumb | | | | /softfp | |------------|--------------------------------------------|--------------| | Cortex-A* | [-mthumb] -march=armv7-a -mfloat-abi=hard | armv7-ar | | (Hard FP) | -mfpu=vfpv3-d16 | /thumb | | | | /fpu | |------------|--------------------------------------------|--------------| * Использование библиотек C *Этот инструментарий выпускается с двумя предварительно скомпилированными библиотеками C на основе newlib: одна — стандартная newlib, а другая — newlib-nano для сжатия кода. Чтобы отличить их, мы переименовываем оптимизированные по размеру библиотеки следующим образом: libc.a --> libc_nano.a libg.a --> libg_nano.a Чтобы использовать newlib-nano, пользователи должны предоставить дополнительный параметр компиляции и сборки gcc: --specs=nano.specs Во время компиляции, если передан параметр --specs=nano.specs, будет использоваться заголовочный файл 'newlib.h', специально настроенный для newlib-nano. Nano.specs также управляет двумя дополнительными библиотеками gcc: libstdc++_nano.a и libsupc++_nano.a, которые оптимизированы по размеру кода. Пример: $ arm-none-eabi-gcc src.c --specs=nano.specs $(OTHER_OPTIONS) Этот параметр также может работать вместе с другими параметрами specs, такими как --specs=rdimon.specs. Обратите внимание, что в отличие от предыдущих версий этого инструментария, --specs=nano.specs теперь является как параметром компилятора, так и параметром линковщика. Убедитесь, что он включен в оба параметра, если компиляция и линковка разделены. ** Дополнительное использование библиотек newlib-nano Newlib-nano отличается от newlib, помимо названия библиотек. Форматированный ввод/вывод чисел с плавающей запятой реализован как слабый символ. Если вы хотите использовать %f, вам нужно будет включить этот символ, явно указав параметр команды "-u". -u _scanf_float -u _printf_float Например, чтобы вывести число с плавающей запятой, команда будет выглядеть так: $ arm-none-eabi-gcc --specs=nano.specs -u _printf_float $(OTHER_LINK_OPTIONS) Для получения дополнительной информации о различиях и использовании, обратитесь к README.nano в исходном пакете. Пользователи могут выбрать, использовать или не использовать полусообщение, следуя инструкциям. ** Полусообщение Если вам нужно полусообщение, связывание будет выглядеть так: $ arm-none-eabi-gcc --specs=rdimon.specs $(OTHER_LINK_OPTIONS) ** Без полусообщения/перенаправление Если вы используете перенаправление, связывание будет выглядеть так: $ arm-none-eabi-gcc --specs=nosys.specs $(OTHER_LINK_OPTIONS) * Скрипты линковщика и стартовый код * Последнее обновление шаблонов скриптов линковщика и стартового кода доступно по адресу http://www.arm.com/cmsis * Примеры * Примеры всех вышеупомянутых методов доступны по адресу: $install_dir/gcc-arm-none-eabi-*/share/gcc-arm-none-eabi/samples Чтобы получить дополнительную информацию, прочитайте readme.txt в этой папке. * Сервер GDB для аппаратного дебаггера CMSIS-DAP * CMSIS-DAP — это интерфейсное программное обеспечение для дебаггера, которое соединяет дебаг-порт с USB. Более подробная информация доступна по адресу http://www.keil.com/support/man/docs/dapdebug/ Необходимо наличие программного сервера GDB для взаимодействия GDB с аппаратным отладчиком, основанным на CMSIS-DAP. PyOCD является реализацией такого сервера GDB, написанного на Python и распространяемого под лицензией Apache.Для тех, кто использует эту инструментальную цепочку и имеет платформу с аппаратным отладчиком, основанным на CMSIS-DAP, pyOCD рекомендуется как сервер GDB. Дополнительная информация доступна по адресу https://github.com/mbedmicro/pyOCD.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )