GCC ARM Embedded е софтуер с отворен код и свободен софтуер, който съдържа предварително създадена GNU toolchain за процесорите ARM Cortex-R и Cortex-M. Проектът цели да приведе GNU Tools в ARM Embedded Processors, като помага на разработчиците с различни компилационни задачи.
Поддържа всички важни процесори 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). Всичките бинарни файлове се намират на & quot; 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
- Добавени mappings на Armv8-R multilib
- Попълнете изисквания за изграждане на поддръжка за GDB tui
- Активиран спецификатор за C99 IO формат в 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
- Характеристики:
- Всички функции на GCC 6, както и най-новите функции на главната линия:
- Пълна поддръжка на ARMv8-M, включително атоми и разширения за сигурност
- Поддръжка на ARM PURECODE за ARMv7-M и ARMv8-M Базово и основно
- Поддръжка на вградения копроцесор
- Поддръжка на Cortex-M23 и Cortex-M33
- -mthumb е опция за устройствата Cortex-M
- Поддръжка за OS-retargeting на рутини за заключване в newlib
- Усъвършенстване на SIMD-оптимизираното вграждане на memchr в newlib
- Активирайте опциите за настройка на инсталационната програма на Windows на командния ред
- Важни промени в освобождаването на 6 актуализации:
- 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
- Нови функции:
- ARMv8-M Основна поддръжка и Основна бета поддръжка:
- ARMv8-M Базова атомна поддръжка
- Поддръжка на ARM PureCode
- Thumb-2 дълги клонки фурнир
- Важни бъгове, фиксирани в изданието 5 обновяване 3:
- Премахнати са специални регистри MSP_S и PSP_S MRS / MSR
- Откриване на фиксирана Thumb версия в генерирането на фурнир
- Фиксирана документация за newlib-nano в release.txt
- Всички функции на GCC 5, плюс последните основни функции:
- Поддръжка на Cortex-R8
- Настройка на ефективността на Cortex-M7
- оптимизиране на ръчно малко натоварване с ендиан и голямо ендиан
- Подобрена резба, която премахва необходимостта от бърз достъп
- ARMv8-M Базова линия и основна алфа поддръжка:
- атомики, които не са включени за ARMv8-M Baseline
- Поддръжка на Alpha 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
- По-малък манипулатор за свързване с newlib-nano
Какво е новото във версия 7-2017-q4:
Какво е новото във версия 6.2:
Какво е новото във версия 5.4:
Какво е новото във версия 5.3:
Какво е новото във версия 5.2:
- Всички функции на GCC 5, както и най-новите функции на основната линия:
- Настройка на ефективността на Cortex-M7
- оптимизиране на ръчно малко натоварване с ендиан и голямо ендиан
- Подобрена резба, която премахва необходимостта от бърз достъп
- ARMv8-M Базова линия и основна алфа поддръжка:
- атомики, които не са включени за ARMv8-M Baseline
- 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-размножават
- Специализиран multilib за Cortex-M7
- - cortex-m7
- - cortex-m7 / fpu / fpv5-d16
- - кортекс-m7 / fpu / fpv5-sp-d16
- - cortex-m7 / softfp / fpv5-d16
- - cortex-m7 / softfp / fpv5-sp-d16
- Дефинирайте rutines aeabi_memcpy и aeabi_memcpy4 в newlib.
- Дефинирайте rutines 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 обновяване 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
- Подкрепа за малък подмножител с опции:
- -mcpu = кора-m1.small-размножават
- -mcpu = кора-m0.small-размножават
- -mcpu = кора-m0plus.small-размножават
- Специализиран multilib за Cortex-M7:
- кора-m7
- кора-m7 / FPU / fpv5-D16
- кора-m7 / FPU / fpv5-SP-D16
- кора-m7 / softfp / fpv5-D16
- кора-m7 / softfp / fpv5-SP-D16
- Дефинирайте rutines aeabi_memcpy и aeabi_memcpy4 в newlib.
- Дефинирайте rutines 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, актуализация 2:
- Актуализира се вграден код за съставяне в Newlib, за да работи със стари мишени https://www.sourceware.org/ml/newlib/2015/msg00386.html
- Избягвайте разхищаването, причинено от промоцията на раздел https://answers.launchpad.net/gcc-arm-embedded/+quot/262160
- Местните регистърни променливи не работят правилно с inline asm операнди https://bugs.launchpad.net/gcc-arm-embedded/+bug/1411655
Какво е новото в версия 4.9 Актуализация 1:
- Характеристики:
- Всички функции на GCC 4.9, плюс най-новите функции на основната линия
- - Поддръжка на Cortex-M7
- - Малка подкрепа за мултиплициране с опции:
- . -mcpu = кора-m1.small-размножават
- . -mcpu = кора-m0.small-размножават
- . -mcpu = кора-m0plus.small-размножават
- Специализиран multilib за Cortex-M7
- - cortex-m7
- - cortex-m7 / fpu / fpv5-d16
- - кортекс-m7 / fpu / fpv5-sp-d16
- - cortex-m7 / softfp / fpv5-d16
- - cortex-m7 / softfp / fpv5-sp-d16
- Дефинирайте rutines aeabi_memcpy и aeabi_memcpy4 в newlib.
- Дефинирайте rutines 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:
- LD backport за запазване на нулева секция в крайния Axf файл
- Коригирайте катастрофата на GDB, причинена от изхвърлянето на разделените секции за отстраняване на грешки
- Добавете шаблон Thumb1 insn, за да легализирате инструкциите, които преместват компютъра в нисък регистър
- Актуализиране на GCC за генериране на Tag_ABI_HardFP_use за най-новия EABI doc
- Високият регистър на живо не е запазен в функционалния пролог с -ОС
- - Изричането на var-info-path-неуспешно за вложени структури
Какво е новото във версия 4.9:
- .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 / + грешка / 1248981
- ICE, когато използвате висока регистрация като PIC регистър на база за целта thumb-1
Какво е новото във версия 4.7 Актуализация 3:
- Crash при компилиране на приложението с фиксирана точка с LTO https : //answers.launchpad.net/gcc-arm-embedded/+question/235582
- Клон към целта, посочен със символа на скрипта за линкер https://sourceware.org/bugzilla/show_bug.cgi?id=15302
- Windows се хоства с gdb hang on some breakpoint https://bugs.launchpad.net/gcc-arm-embedded/+bug/1197615
- Нано липсва позоваване на _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 с опция -tunta https://answers.launchpad.net/gcc-arm-embedded/+question/227667
- Коригирайте опцията за дебъгване в скрипта за създаване https://answers.launchpad.net/gcc-arm-embedded/+question/229127
- Коригирайте ненужното lr запазете в функцията за палец thumb1
Какво е новото във версия 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
- Той също така получава конфигурацията за изграждане, коригирана, за да активира:
- Основен кортекс-А профил multilib
- LTO (Оптимизиране на времето за връзка)
Коментари не е намерена