GCC ARM Embedded - це програмне забезпечення з відкритим кодом та вільно розподіленим програмним забезпеченням, яке містить попередньо побудований набір інструментів GNU для процесорів ARM Cortex-R та Cortex-M. Проект спрямований на залучення інструментів GNU для вбудованих процесорів 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; бенері & 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
- Додано архівації Multilibs у форматі Armv8-R
- Виправте вимоги до збирання для підтримки TUI GDB
- Увімкнено специфікатор формату C99 у форматі newlib
- Виправлено cmse_nonsecure_caller Внутрішній захист Armv8-M
- Виправлено помилку в __builtin_arm_set_fpscr вбудованій GCC
- Помилка LTO https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966 була виправлена в попередньому випуску. Відомості про випуск оновлено, щоб відобразити зміни.
- Виправлена проблема з будівництвом cmse.c libgcc без заголовків
- Виправлена проблема з сумісництвом arm_cmse.h C99
- Підтримка Armv8-R та Cortex-R52
- Виправлено для https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69866
- GDB, створений за допомогою C + + для Mac OS X
Що нового у версії 7-2017-q4:
Що нового у версії 6.2:
- Особливості:
- Усі функції GCC 6, а також останні основні функції:
- Повна підтримка ARMv8-M, включаючи атоміки та розширення безпеки
- Підтримка ARM PURECODE для базових ліній і магістралей ARMv7-M та ARMv8-M
- Підтримка сумісних процесорів
- Підтримка Cortex-M23 та Cortex-M33
- -однаково необов'язкова для пристроїв Cortex-M
- Підтримка переміщення ОС за допомогою процедур блокування в newlib
- Розвинена SIMD оптимізована реалізація memchr в 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
- Бібліотеки імпорту SG, які були створені як виконувані, тепер виправлено для переміщення
- Увімкніть параметри налаштування для інсталятора Windows в командному рядку
- Підтримка PURECODE для ARMv8-M.Baseline
- Розвинена SIMD оптимізована реалізація memchr в newlib
Що нового в версії 5.4:
- Нові функції:
- Підтримка бета-версії ARMv8-M Baseline і Mainline:
- ARMv8-M підтримка базових атомів
- Підтримка ARM PureCode
- Типограф-візерунок з довгим відділенням
- Важкі помилки, виправлені в 5 версії 3 оновлення:
- Вилучені спеціальні регістри MSP_S та PSP_S MRS / MSR
- Визначення версії фіксованого пакунка в покоління шпону
- Виправлена документація про newlib-nano у файлі release.txt
Що нового в версії 5.3:
- Особливості
- Усі функції GCC 5, а також останні основні функції:
- Підтримка Cortex-R8
- Налаштування продуктивності Cortex-M7
- Оптимізація ручних операцій з маленьким endian та великими завантаженнями endian
- вдосконалений стрибок, видаливши необхідність для швидкого перемикання
- 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
- Оптимізація ручних операцій з маленьким endian та великими завантаженнями endian
- вдосконалений стрибок, видаливши необхідність для швидкого перемикання
- 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 = cortex-m1.small-multiply
- . -mcpu = cortex-m0.small-multiply
- . -mcpu = cortex-m0plus.small-multiply
- Виділений multilib для 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 у новому списку.
- Визначте підказки aeabi_memmove, aeabi_memset та aeabi_memclr у новому списку.
- Оптимізація бібліотеки Thumb-1.
- Додаткові оптимізації розміру коду.
- Додати gdb python build (arm-none-eabi-gdb-py).
- Файл об'єкта без розділу атрибутів може бути пов'язаний з будь-якими іншими.
- Параметри -mapcs, -mapcs-frame, -mtpcs-frame і -mtpcs-leaf-frame буде застарілим в gcc 5.0, отже рекомендуємо уникати їх.
- Важливі помилки, виправлені в версії 4.9 оновлення 3:
- Виправлення невідповідності специфікатора формату Newlib. https://anwers.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
- Невелика підтримка множення з параметрами:
- -mcpu = cortex-m1.small-multiply
- -mcpu = cortex-m0.small-multiply
- -mcpu = cortex-m0plus.small-multiply
- Спеціальний Multilib для 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 у новому списку.
- Визначте підказки aeabi_memmove, aeabi_memset та aeabi_memclr у новому списку.
- Оптимізація бібліотеки Thumb-1.
- Додаткові оптимізації розміру коду.
- Додати gdb python build (arm-none-eabi-gdb-py).
- Файл об'єкта без розділу атрибутів може бути пов'язаний з будь-якими іншими.
- Параметри -mapcs, -mapcs-frame, -mtpcs-frame і -mtpcs-leaf-frame буде застарілим в gcc 5.0, отже рекомендуємо уникати їх.
- Важливі помилки, виправлені в версії 4.9 оновлення 2:
- Оновлений деякий початковий код збірки в Newlib для роботи зі старими цілями https://www.sourceware.org/ml/newlib/2015/msg00386.html
- Уникайте витрат, пов'язаних із заохоченням розміру розділу https://anwers.launchpad.net/gcc-arm-embedded/+question/262160
- Локальні змінні регістрів не працюють коректно з вбудованими операційними асистами https://bugs.launchpad.net/gcc-arm-embedded/+bug/1411655
Що нового в версії 4.9 Оновлення 1:
- Особливості:
- Усі функції GCC 4.9, а також останні основні функції
- - підтримка Cortex-M7
- - Невелика підтримка множення з параметрами:
- . -mcpu = cortex-m1.small-multiply
- . -mcpu = cortex-m0.small-multiply
- . -mcpu = cortex-m0plus.small-multiply
- Виділений multilib для 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 у новому списку.
- Визначте підказки aeabi_memmove, aeabi_memset та aeabi_memclr у новому списку.
- Оптимізація бібліотеки Thumb-1.
- Додаткові оптимізації розміру коду.
- Додати gdb python build (arm-none-eabi-gdb-py).
- Файл об'єкта без розділу атрибутів може бути пов'язаний з будь-якими іншими.
- Параметри -mapcs, -mapcs-frame, -mtpcs-frame і -mtpcs-leaf-frame буде застарілим в gcc 5.0, отже рекомендуємо уникати їх.
- Важливі помилки, виправлені в версії 4.9 1 випуск:
- Захист від LD, щоб зберегти розділ нульової довжини у файлі остаточного axf
- Виправте помилку GDB, викликану відмовою згрупованих розділів налагодження
- Додайте шаблон Thumb1 insn для легалізації інструкції, яка переміщує комп'ютер до нижнього регістру
- Оновити GCC для створення Tag_ABI_HardFP_use на останній документ EABI
- Live high регістр не зберігається в функції prolog з -O
- - вираз var-info-path-expression не вдається для вкладених структур
Що нового в версії 4.9:
- Філія до символу, визначеного в сценарії лінкера http: // sourceware .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 -embedded / + bug / 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
- Хост gdb виявлено в системі Windows на певній точці зупинки 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://anwers.launchpad.net/gcc-arm-embedded/+question/227667
- Виправити --debug параметр у скрипті збірки https://anwers.launchpad.net/gcc-arm-embedded/+question/229127
- Виправте непотрібний файл lr збереження в функції thumb1 листа
Що нового в версії 4.7 Оновлення 1:
- Це випуск виправлення виправляє пару проблем, Розділ 4.7:
- Версія хоста Mac OS має залежність від пітона
- Відмова LTO при встановленні в каталог з пробілом в назві шляху http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293
- Завантажте адреси розділів даних, що містять вирівняні дані, http://sourceware.org/bugzilla/show_bug.cgi?id=15222
- libnosys не перевіряє переповнення стеків https://anwers.launchpad.net/gcc-arm-embedded/+question/218972
- libridimon.a не відповідає newlib-nano
- Також настроюється конфігурація збірки, щоб увімкнути:
- Основний інтерфейс профілю Cortex-A
- LTO (оптимізація часу посилання)
Коментар не знайдено