GCC ARM Embedded is een open source en gratis gedistribueerde software die een vooraf gebouwde GNU-toolchain bevat voor ARM Cortex-R en Cortex-M-processors. Het doel van het project is om de GNU Tools naar ARM Embedded Processors te brengen en ontwikkelaars te helpen met verschillende compilatietaken.
Ondersteunt alle belangrijke Cortex ARM-processors
De software is vanaf de grond opgebouwd om alle belangrijke Cortex ARM-processoren te ondersteunen, inclusief Cortex-R4, Cortex-R5, Cortex-R7, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M0 +, en Cortex-M0.
Omdat de GCM ARM Embedded-software wordt onderhouden door de ARM-medewerkers, maakt dit deel uit van een voortdurende inzet om de GNU Compiler Collection (GCC) -ondersteuning voor de ARM-architectuur te verbeteren en te onderhouden.
Aan de slag met GCC ARM Embedded
Om de ingesloten GCC ARM-software op uw GNU / Linux-computer te gebruiken, moet u het binaire pakket downloaden, dat alle vooraf gebouwde binaries bevat die u nodig hebt om te beginnen. Bewaar het archief ergens op uw computer, bij voorkeur uw homedirectory, gebruik een archiefbeheerhulpprogramma om de inhoud ervan te extraheren.
Open vervolgens een Terminal-app en navigeer naar de locatie waar u het archiefbestand hebt uitgepakt (bijvoorbeeld cd / home / softoware / gcc-arm-none-eabi-4_9-2014q4). Alle binaire bestanden bevinden zich op de & lsquo; -invoerbak & rsquo; map.
Beschikbaarheid en ondersteunde hardwareplatforms
GCC ARM Embedded wordt gedistribueerd als binaire en bronarchieven, evenals een PPA-repository voor de nieuwste releases van het Ubuntu Linux-besturingssysteem, die zowel 32- als 64-bit-architecturen ondersteunen. Houd er rekening mee dat de software ook compatibel is met de Mac OS X- en Microsoft Windows-besturingssystemen.
Wat is nieuw in deze versie:
- Vaste powf / expf / exp2f / logf / log2f prestatieregressie
- Ondersteuning voor Arm Cortex-M33 zonder DSP toegevoegd via -mcpu = cortex-m33 + nodsp
- Armv8-R multilib-toewijzingen toegevoegd
- Fix build-vereisten voor GDB tui-ondersteuning
- Ingeschakeld C99 IO-indeling in newlib
- Fixed cmse_nonsecure_caller Armv8-M beveiligingsuitbreiding intrinsiek
- Crash oplossen in __builtin_arm_set_fpscr GCC ingebouwd
- LTO-fout https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966 is opgelost in de vorige release. Notitie vrijgeven bijgewerkt om de wijziging weer te geven.
- Probleem opgelost met het bouwen van libgcc's cmse.c zonder headers
- Probleem opgelost met arm_cmse.h C99-compatibiliteit
Wat is nieuw in versie 7-2017-q4:
- Ondersteuning voor Armv8-R en Cortex-R52 .
- Fix voor https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69866
- GDB gebouwd met C ++ ingeschakeld voor Mac OS X
Wat is nieuw in versie 6.2:
- Kenmerken:
- Alle GCC 6-functies plus de nieuwste hoofdlijnen:
- Volledige ARMv8-M-ondersteuning inclusief atomics en beveiligingsuitbreidingen
- ARM PURECODE-ondersteuning voor ARMv7-M en ARMv8-M Baseline en Mainline
- Ondersteuning van de intrinsieke ondersteuning van de co-processor
- Ondersteuning voor Cortex-M23 en Cortex-M33
- -mthumb optioneel voor Cortex-M-apparaten
- Ondersteuning voor OS-retargeting van vergrendelingsroutines in newlib
- Geavanceerde SIMD-geoptimaliseerde memchr-implementatie in newlib
- Schakel instellingsopties in voor Windows Installer op de opdrachtregel
- Belangrijke wijzigingen in de release van 6 update 2:
- GCC gaat er ten onrechte van uit dat Cortex-r [578] 64-bits single-copy atomic LDRD https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80082
- LDR pseudo-op genereert MOVS https://bugs.launchpad.net/gcc-arm-embedded/+bug/1682620
- FPSCR-bouwsteen voor getter en setter gefixt
- SG-importbibliotheken die als uitvoerbaar bestand zijn gemaakt, zijn nu verhuisd naar verplaatsbaar
- Schakel instellingsopties in voor Windows Installer op de opdrachtregel
- PURECODE-ondersteuning ingeschakeld voor ARMv8-M.Baseline
- Geavanceerde SIMD-geoptimaliseerde memchr-implementatie in newlib
Wat is nieuw in versie 5.4:
- Nieuwe functies:
- ARMv8-M Baseline en Mainline beta-ondersteuning:
- ARMv8-M Basislijn atomaire ondersteuning
- ARM PureCode-ondersteuning
- Duim-2 lange vertakkingsfineren
- Belangrijke bugs opgelost in 5 update 3 release:
- MSP_S en PSP_S MRS / MSR speciale registers verwijderd
- Fixed Thumb-versie detectie in fineergeneratie
- Vaste documentatie over newlib-nano in release.txt
Wat is nieuw in versie 5.3:
- Functies:
- Alle GCC 5-functies plus de nieuwste hoofdlijnen:
- Cortex-R8-ondersteuning
- Prestatie-afstelling Cortex-M7
- Optimalisatie van handmatige kleine endian en big endian loads
- verbeterde sprong threading waardoor de noodzaak van -ftree-switch-shortcut is weggenomen
- ARMv8-M Basislijn- en hoofdlijn-alpha-ondersteuning:
- atomics niet inbegrepen voor ARMv8-M Baseline
- ARMv8-M Beveiligingsuitbreidingen Alfa-ondersteuning
- Thumb-1-bibliotheekoptimalisaties:
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- CRC-optimalisatie:
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
- Kleinere terminale handler voor newlib-nano
Wat is nieuw in versie 5.2:
- Alle GCC 5-functies plus de nieuwste hoofdlijnen:
- Prestatie-afstelling Cortex-M7
- Optimalisatie van handmatige kleine endian en big endian loads
- verbeterde sprong threading waardoor de noodzaak van -ftree-switch-shortcut is weggenomen
- ARMv8-M Basislijn- en hoofdlijn-alpha-ondersteuning:
- atomics niet inbegrepen voor ARMv8-M Baseline
- ARMv8-M Beveiligingsuitbreidingen worden alleen ondersteund voor het samenstellen en basiskoppelingen
- Thumb-1 bibliotheekoptimalisaties
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- CRC-optimalisatie
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
Wat is nieuw in versie 4.9 Update 3:
- Kenmerken:
- Alle GCC 4.9-functies plus de nieuwste hoofdlijnen
- Ondersteuning voor Cortex-M7
- Kleine multiply-ondersteuning met opties:
- . -mcpu = cortex-m1.small-multiply
- . -mcpu = cortex-m0.small-multiply
- . -mcpu = cortex-m0plus.small-multiply
- Toegewijde multilib voor 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
- Definieer aeabi_memcpy en aeabi_memcpy4 routines in newlib.
- Definieer aeabi_memmove, aeabi_memset en aeabi_memclr routines in nieuwbalk.
- Thumb-1-bibliotheekoptimalisaties.
- Aanvullende optimalisatie van de codegrootte.
- Voeg gdb python build toe (arm-none-eabi-gdb-py).
- Objectbestand zonder attribuutsectie kan aan andere worden gekoppeld.
- De opties -mapcs, -mapcs-frame, -mtpcs-frame en -mtpcs-leaf-frame zullen worden afgekeurd in gcc 5.0, dus raad aan om ze te vermijden.
- Belangrijke bugs opgelost in 4.9 update 3 release:
- Fixatie voor niet-overeenkomende Newlib-indeling. https://answers.launchpad.net/gcc-arm-embedded/+question/269083
- Fixatie voor Newlib-macro komt niet overeen. https://answers.launchpad.net/gcc-arm-embedded/+question/269177
- Probleemoplosser voor assemblercodering. https://sourceware.org/ml/binutils/2015-08/msg00028.html
Wat is nieuw in versie 4.9 Update 2:
- Kenmerken:
- Alle GCC 4.9-functies plus de nieuwste hoofdlijnen
- Ondersteuning voor Cortex-M7
- Kleine multiply-ondersteuning met opties:
- -mcpu = cortex-m1.small-multiply
- -mcpu = cortex-m0.small-multiply
- -mcpu = cortex-m0plus.small-multiply
- Toegewijde multilib voor 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
- Definieer aeabi_memcpy en aeabi_memcpy4 routines in newlib.
- Definieer aeabi_memmove, aeabi_memset en aeabi_memclr routines in nieuwbalk.
- Thumb-1-bibliotheekoptimalisaties.
- Aanvullende optimalisatie van de codegrootte.
- Voeg gdb python build toe (arm-none-eabi-gdb-py).
- Objectbestand zonder attribuutsectie kan aan andere worden gekoppeld.
- De opties -mapcs, -mapcs-frame, -mtpcs-frame en -mtpcs-leaf-frame zullen worden afgekeurd in gcc 5.0, dus raad aan om ze te vermijden.
- Belangrijke bugs opgelost in 4.9 update 2 release:
- Enkele inline-assemblagecode in Newlib bijgewerkt om te werken met oude doelen https://www.sourceware.org/ml/newlib/2015/msg00386.html
- Vermijd verspilling veroorzaakt door promotie van sectiegrootte https://answers.launchpad.net/gcc-arm-embedded/+question/262160
- Lokale registervariabelen werken niet correct met inline asm operanden https://bugs.launchpad.net/gcc-arm-embedded/+bug/1411655
Wat is nieuw in versie 4.9 Update 1:
- Kenmerken:
- Alle GCC 4.9-functies plus de nieuwste hoofdlijnen
- - Ondersteuning voor Cortex-M7
- - Kleine multiply-ondersteuning met opties:
- . -mcpu = cortex-m1.small-multiply
- . -mcpu = cortex-m0.small-multiply
- . -mcpu = cortex-m0plus.small-multiply
- Toegewijde multilib voor 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
- Definieer aeabi_memcpy en aeabi_memcpy4 routines in newlib.
- Definieer aeabi_memmove, aeabi_memset en aeabi_memclr routines in nieuwbalk.
- Thumb-1-bibliotheekoptimalisaties.
- Aanvullende optimalisatie van de codegrootte.
- Voeg gdb python build toe (arm-none-eabi-gdb-py).
- Objectbestand zonder attribuutsectie kan aan andere worden gekoppeld.
- De opties -mapcs, -mapcs-frame, -mtpcs-frame en -mtpcs-leaf-frame zullen worden afgekeurd in gcc 5.0, dus raad aan om ze te vermijden.
- Belangrijke bugs opgelost in 4.9 update 1 release:
- LD-backport om de nullengtesectie in het uiteindelijke axf-bestand te behouden
- Fix GDB-crash veroorzaakt door het weggooien van de gegroepeerde foutopsporingssecties
- Voeg een Thumb1 insn-patroon toe om de instructie te legaliseren die de pc naar low register verplaatst
- Update GCC voor het genereren van Tag_ABI_HardFP_use per het nieuwste EABI-document
- Live hoog register niet opgeslagen in functie proloog met -Os
- - var-info-pad-expressie mislukt voor geneste structs
Wat is nieuw in versie 4.9:
- Branch to symbol gedefinieerd in linkerscript http: // sourceware .org / bugzilla / show_bug.cgi? id = 15302
- GDB is geüpgraded naar 7.6 om dwerg-3 en hoger standaard https://answers.launchpad.net/gcc-arm-embedded/+question/234131 https://bugs.launchpad.net/gcc-arm beter te ondersteunen Ingebedde / + bug / 1.248.981
- ICE bij gebruik van hoog register als PIC-basisregister voor thumb-1 doel
Wat is nieuw in versie 4.7 Update 3:
- Crash bij het compileren van een app met een vast punt met LTO https : //answers.launchpad.net/gcc-arm-embedded/+question/235582
- Aftakking naar doel gespecificeerd door een linker-scriptsymbool https://sourceware.org/bugzilla/show_bug.cgi?id=15302
- Windows gehost gdb hangen op een onderbrekingspunt https://bugs.launchpad.net/gcc-arm-embedded/+bug/1197615
- Nano ontbreekt als verwijzing naar _mallopt_r https://mbed.org/forum/mbed/topic/2701/?page=3#comment-22549
Wat is nieuw in versie 4.7 Update 2:
- Upgrade doc / *. texi naar het nieuwste texinfo-pakket https: // answers.launchpad.net/gcc-arm-embedded/+question/227685
- Fix ICE met -muntune-optie https://answers.launchpad.net/gcc-arm-embedded/+question/227667
- Fix --debug-optie in build-script https://answers.launchpad.net/gcc-arm-embedded/+question/229127
- Fix onnodige lr opslaan in thumb1 leaf-functie
Wat is nieuw in versie 4.7 Update 1:
- Deze update-uitgave lost een aantal problemen op die zijn aangetroffen in 4.7 major:
- Mac OS-hostversie heeft python-afhankelijkheid
- LTO-fout bij installatie in map met ruimte in padnaam http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293
- Laadadres van gegevenssecties die uitgelijnde gegevens bevatten http://sourceware.org/bugzilla/show_bug.cgi?id=15222
- libnosys controleert de stack-overloop niet https://answers.launchpad.net/gcc-arm-embedded/ +question/218972
- librdimon.a komt niet overeen met newlib-nano
- Het krijgt ook de build-configuratie aangepast om in te schakelen:
- Basic Cortex-A profile multilib
- LTO (optimalisatie van de linktijd)
Reacties niet gevonden