GCC ARM Embedded - это свободно распространяемое ПО с открытым исходным кодом, которое содержит предварительно встроенную инструментальную цепочку GNU для процессоров ARM Cortex-R и Cortex-M. Целью проекта является приведение GNU Tools в встроенные процессоры ARM, помогающие разработчикам с различными задачами компиляции.
Поддерживает все важные процессоры Cortex ARM
Программное обеспечение было создано с нуля для поддержки всех важных процессоров Cortex ARM, включая Cortex-R4, Cortex-R5, Cortex-R7, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M0 +, и Cortex-M0.
Будучи поддерживаемым сотрудниками ARM, программное обеспечение GCC ARM Embedded является частью постоянного обязательства по расширению и поддержке поддержки GNU Compiler Collection (GCC) для архитектуры ARM.
Начало работы с GCC ARM Embedded
Чтобы использовать программное обеспечение GCC ARM Embedded на вашем компьютере GNU / Linux, вы должны загрузить двоичный пакет, содержащий все предварительно созданные двоичные файлы, которые вам нужно для начала работы. Сохраните архив где-нибудь на своем компьютере, предпочтительно ваш домашний каталог, используйте утилиту диспетчера архива, чтобы извлечь ее содержимое.
Затем откройте приложение «Терминал» и перейдите к месту, где вы извлекли файл архива (например, cd / home / softoware / gcc-arm-none-eabi-4_9-2014q4). Все двоичные файлы находятся в каталоге & lsquo; bin & rsquo; папку.
Доступность и поддержка аппаратных платформ
GCC ARM Embedded распространяется как двоичные и исходные архивы, а также репозиторий PPA для последних версий операционной системы Ubuntu Linux, поддерживающий как 32, так и 64-разрядные архитектуры. Обратите внимание: программное обеспечение также совместимо с операционными системами Mac OS X и Microsoft Windows.
Что нового в этой версии:
- Исправлена регрессия производительности powf / expf / exp2f / logf / log2f
- Добавлена поддержка Arm Cortex-M33 без DSP через -mcpu = cortex-m33 + nodsp
- Добавлены сопоставления Multilib в Armv8-R
- Исправьте требования к сборке для поддержки GDB tui.
- Включен спецификатор формата C99 IO в newlib
- Исправлена ошибка cmse_nonsecure_caller Armv8-M внутренней безопасности
- Исправить ошибку в __builtin_arm_set_fpscr GCC builtin
- Ошибка LTO https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966 была исправлена в предыдущем выпуске. Примечание по выпуску обновлено, чтобы отразить изменения.
- Исправлена проблема с компоновкой cmse.c libgcc без заголовков
- Исправлена проблема с совместимостью с arm_cmse.h C99
Что нового в версии 7-2017-q4:
- Поддержка Armv8-R и Cortex-R52 .
- Исправить для https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69866
- GDB, построенный с поддержкой C ++ для Mac OS X
Что нового в версии 6.2:
- Особенности:
- Все функции GCC 6, а также новейшие основные функции:
- Полная поддержка ARMv8-M, включая атомы и расширения безопасности.
- Поддержка ARM PURECODE для ARMv7-M и ARMv8-M Baseline и Mainline
- Поддержка сопроцессора сопроцессора.
- Поддержка Cortex-M23 и Cortex-M33
- -mthumb необязательно для устройств Cortex-M
- Поддержка переадресации OS-операций для процедур блокировки в newlib
- Расширенная реализация memchr с оптимизацией SIMD в newlib
- Включить параметры настройки для установщика Windows в командной строке
- Важные изменения в версии 6 обновлений 2:
- GCC неправильно предполагает, что Cortex-r [578] имеет 64-битный однократный атомный LDRD https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80082
- Псевдопотент LDR генерирует MOVS https://bugs.launchpad.net/gcc-arm-embedded/+bug/1682620
- Исправлены встроенные функции FPSCR и setter.
- Библиотеки импорта SG, которые были созданы как исполняемые, теперь привязаны к перемещаемым
- Включить параметры настройки для установщика Windows в командной строке
- Поддержка PURECODE для ARMv8-M.Baseline
- Расширенная реализация memchr с оптимизацией SIMD в newlib
Что нового в версии 5.4:
- Новые функции:
- Поддержка бета-версии базовой линии и базовой линии ARMv8-M:
- ARMv8-M Базовая поддержка атомизации
- Поддержка ARM PureCode
- Виниры длинной ветви Thumb-2
- Важные ошибки исправлены в версии 5 обновлений 3:
- Удалены специальные регистры MSP_S и PSP_S MRS / MSR.
- Исправлено обнаружение версии Thumb в гене шпона
- Фиксированная документация о newlib-nano в файле release.txt
Что нового в версии 5.3:
- Особенности:
- Все функции GCC 5, а также новейшие основные функции:
- Поддержка Cortex-R8
- Настройка производительности Cortex-M7
- оптимизация малогабаритных малых и больших эндианских нагрузок
- улучшенная обработка потоков, устраняющая необходимость-short-switch-shortcut
- ARMv8-M Поддержка базовой линии и базовой линии:
- атомы не включены в базовый уровень ARMv8-M
- Расширения безопасности ARMv8-M Поддержка Alpha
- Оптимизация библиотеки Thumb-1:
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- Оптимизация CRC:
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
- Меньший обработчик завершения для newlib-nano
Что нового в версии 5.2:
- Все функции GCC 5, а также новейшие основные функции:
- Настройка производительности Cortex-M7
- оптимизация малогабаритных малых и больших эндианских нагрузок
- улучшенная обработка потоков, устраняющая необходимость-short-switch-shortcut
- ARMv8-M Поддержка базовой линии и базовой линии:
- атомы не включены в базовый уровень ARMv8-M
- Расширения безопасности ARMv8-M поддерживаются только для сборки и базовой привязки
- Оптимизация библиотеки Thumb-1
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- Оптимизация CRC
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
Что нового в версии 4.9 Обновление 3:
- Особенности:
- Все функции GCC 4.9, а также новейшие основные функции.
- Поддержка Cortex-M7
- Поддержка малого размера с опциями:
- . -mcpu = кортекс-m1.small-кратно
- . -mcpu = кортекс-m0.small-кратно
- . -mcpu = кортекс-m0plus.small-кратно
- Специальный мультилифт для Cortex-M7
- - cortex-m7
- - cortex-m7 / fpu / fpv5-d16
- - cortex-m7 / fpu / fpv5-sp-d16
- - cortex-m7 / softfp / fpv5-d16
- - cortex-m7 / softfp / fpv5-sp-d16
- Определите подпрограммы aeabi_memcpy и aeabi_memcpy4 в newlib.
- Определите подпрограммы aeabi_memmove, aeabi_memset и aeabi_memclr в newlib.
- Оптимизация библиотеки Thumb-1.
- Дополнительные оптимизации размера кода.
- Добавить gdb python build (arm-none-eabi-gdb-py).
- Объектный файл без раздела атрибута может быть связан с любыми другими.
- Параметры -mapcs, -mapcs-frame, -mtpcs-frame и -mtpcs-leaf-frame будут устаревать в gcc 5.0, поэтому рекомендуется избегать их.
- Важные ошибки исправлены в версии 4.9 update 3:
- Неверное исправление спецификатора формата Newlib. https://answers.launchpad.net/gcc-arm-embedded/+question/269083
- Исправлено несоответствие макросов Newlib. https://answers.launchpad.net/gcc-arm-embedded/+question/269177
- Исправлена ошибка с кодировкой ассемблера. https://sourceware.org/ml/binutils/2015-08/msg00028.html
Что нового в версии 4.9 Обновление 2:
- Особенности:
- Все функции GCC 4.9, а также новейшие основные функции.
- Поддержка Cortex-M7
- Поддержка малого размера с опциями:
- Выделенный мультилиб для Cortex-M7:
- Кора-m7
- Кора-m7 / FPU / fpv5-d16
- Кора-m7 / softfp / fpv5-d16
- Определите подпрограммы aeabi_memcpy и aeabi_memcpy4 в newlib.
- Определите подпрограммы aeabi_memmove, aeabi_memset и aeabi_memclr в newlib.
- Оптимизация библиотеки Thumb-1.
- Дополнительные оптимизации размера кода.
- Добавить gdb python build (arm-none-eabi-gdb-py).
- Объектный файл без раздела атрибута может быть связан с любыми другими.
- Параметры -mapcs, -mapcs-frame, -mtpcs-frame и -mtpcs-leaf-frame будут устаревать в gcc 5.0, поэтому рекомендуется избегать их.
- Важные ошибки исправлены в версии 4.9 update 2:
- Обновлен некоторый встроенный ассемблерный код в Newlib для работы со старыми объектами https://www.sourceware.org/ml/newlib/2015/msg00386.html
- Избегайте потерь, вызванных продвижением размера раздела https://answers.launchpad.net/gcc-arm-embedded/+question/262160
- Локальные регистровые переменные не работают корректно с встроенными операндами asm https://bugs.launchpad.net/gcc-arm-embedded/+bug/1411655
<Литий> -mcpu = кортекс-m1.small-кратно
<Литий> -mcpu = кортекс-m0.small-кратно
<Литий> -mcpu = кортекс-m0plus.small-кратно
<Литий> Кора-M7 / FPU / fpv5-SP-D16
<Литий> Кора-M7 / softfp / fpv5-SP-D16
Что нового в версии 4.9 Обновление 1:
- Особенности:
- Все функции GCC 4.9, а также новейшие основные функции.
- - поддержка Cortex-M7
- - Небольшая многократная поддержка с опциями:
- . -mcpu = кортекс-m1.small-кратно
- . -mcpu = кортекс-m0.small-кратно
- . -mcpu = кортекс-m0plus.small-кратно
- Специальный мультилифт для Cortex-M7
- - cortex-m7
- - cortex-m7 / fpu / fpv5-d16
- - cortex-m7 / fpu / fpv5-sp-d16
- - cortex-m7 / softfp / fpv5-d16
- - cortex-m7 / softfp / fpv5-sp-d16
- Определите подпрограммы aeabi_memcpy и aeabi_memcpy4 в newlib.
- Определите подпрограммы aeabi_memmove, aeabi_memset и aeabi_memclr в newlib.
- Оптимизация библиотеки Thumb-1.
- Дополнительные оптимизации размера кода.
- Добавить gdb python build (arm-none-eabi-gdb-py).
- Объектный файл без раздела атрибута может быть связан с любыми другими.
- Параметры -mapcs, -mapcs-frame, -mtpcs-frame и -mtpcs-leaf-frame будут устаревать в gcc 5.0, поэтому рекомендуется избегать их.
- Важные ошибки исправлены в версии 4.9 update 1:
- LD backport для сохранения нулевой длины в конечном файле axf
- Исправить ошибку GDB, вызванную отбрасыванием разделенных разделов отладки
- Добавьте шаблон Thumb1 insn для легализации инструкции, которая перемещает pc в низкий регистр
- Обновить GCC для генерации Tag_ABI_HardFP_use в последнем документе EABI
- Живой высокий регистр не сохраняется в прологе функции с -Os
- - var-info-path-expression не выполняется для вложенных структур
Что нового в версии 4.9:
- Ветвь к символу, определенному в скрипте компоновщика http: // исходная программа .org / Bugzilla / show_bug.cgi? ID = 15302
- GDB обновлен до 7,6 для лучшей поддержки карликов-3 и более поздних версий https://answers.launchpad.net/gcc-arm-embedded/+question/234131 https://bugs.launchpad.net/gcc-arm -вложено / + ошибка / 1248981
- ICE, когда используется высокий регистр в качестве базового регистра PIC для цели большого пальца-1
Что нового в версии 4.7 Обновление 3:
- Сбой при компиляции приложения с фиксированной точкой с LTO https : //answers.launchpad.net/gcc-arm-embedded/+question/235582
- Ветвь к цели, заданная символом сценария компоновщика https://sourceware.org/bugzilla/show_bug.cgi?id=15302
- Windows-хостинг gdb зависает в некоторой точке останова https://bugs.launchpad.net/gcc-arm-embedded/+bug/1197615
- Nano отсутствует ссылка на _mallopt_r https://mbed.org/forum/mbed/topic/2701/?page=3#comment-22549
Что нового в версии 4.7 Обновление 2:
- Обновите doc / *. texi до последнего пакета texinfo https: // answers.launchpad.net/gcc-arm-embedded/+question/227685
- Исправить ICE с помощью опции -mtune https://answers.launchpad.net/gcc-arm-embedded/+question/227667
- Исправлена опция --debug в скрипте сборки https://answers.launchpad.net/gcc-arm-embedded/+question/229127
- Исправить ненужное lr сохранить в функции листа большого пальца.
Что нового в версии 4.7 Обновление 1:
- В этом выпуске обновления исправлено несколько проблем, 4.7:
- Версия хоста Mac OS имеет зависимость от python
- Ошибка LTO при установке в каталог с пробелом в имени пути http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293
- Загрузка адреса разделов данных, содержащих выровненные данные http://sourceware.org/bugzilla/show_bug.cgi?id=15222
- libnosys не проверяет переполнение стека https://answers.launchpad.net/gcc-arm-embedded/+question/218972
- librdimon.a не соответствует newlib-nano
- Он также получает конфигурацию сборки, настроенную для включения:
- Основной профиль Cortex-A multilib
- LTO (Оптимизация времени связи)
Комментарии не найдены