GCC ARM Embedded je open source a volně distribuovaný software, který obsahuje vestavěnou GNU nástrojovou řadu pro procesory ARM Cortex-R a Cortex-M. Cílem projektu je přenést nástroje GNU na vestavěné procesory ARM a pomáhat vývojářům s různými kompilačními úkoly.
Podporuje všechny důležité procesory Cortex ARM
Software byl vytvořen od základů pro podporu všech důležitých procesorů Cortex ARM, včetně Cortex-R4, Cortex-R5, Cortex-R7, Cortex-M3, Cortex-M4, Cortex-M7, Cortex- a Cortex-M0.
Software GCC ARM Embedded je součástí údržby zaměstnanců ARM a je součástí pokračujícího závazku podporovat architekturu architektury ARM architekturu ARM.
Začínáme s GCC ARM Embedded
Chcete-li používat software GCC ARM Embedded na vašem počítači GNU / Linux, měli byste si stáhnout binární balíček, který obsahuje všechny předinstalované binární soubory, které potřebujete začít. Uložte archiv někde na vašem počítači, nejlépe váš domovský adresář, pomocí nástroje pro správu archivu extrahujte jeho obsah.
Pak otevřete aplikaci Terminál a přejděte na místo, kde jste extrahovali archivní soubor (např. cd / home / softoware / gcc-arm-none-eabi-4_9-2014q4). Všechny binární soubory jsou umístěny na kartě & bsquo; složky.
Dostupnost a podporované hardwarové platformy
GCC ARM Embedded je distribuován jako binární a zdrojový archiv, stejně jako repozitář PPA pro nejnovější verze operačního systému Ubuntu Linux, který podporuje architektury 32 a 64 bitů. Vezměte prosím na vědomí, že software je také kompatibilní s operačními systémy Mac OS X a Microsoft Windows.
Co je nového v této verzi:
- Opravená výkonnost regrese powf / expf / exp2f / logf / log2f
- Přidána podpora pro Arm Cortex-M33 bez DSP přes -mcpu = cortex-m33 + nodsp
- Přidány mapování Armv8-R multilib
- Opravte požadavky na sestavení podpory GDB tui
- Povoleno specifikátor formátu C99 IO v newlib
- Opraveno cmse_nonsecure_caller Armv8-M Bezpečnostní rozšíření vlastní
- Oprava selhání v __builtin_arm_set_fpscr GCC builtin
- Chyba LTO https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966 byla opravena v předchozím vydání. Poznámky k vydání byly aktualizovány tak, aby odrážely změnu.
- Opraven problém s vytvořením knihovny cmse.c libgcc bez záhlaví
- Opraven problém s arm_cmse.h kompatibilitou C99
Co je nového ve verzi 6.2:
- Funkce:
- Všechny funkce GCC 6 plus nejnovější funkce hlavní linky:
- Plná podpora ARMv8-M zahrnující atomiku a rozšíření zabezpečení
- podpora ARM PURECODE pro základní a hlavní řadu ARMv7-M a ARMv8-M
- podpora integrovaného koprodukčního procesoru
- Podpora Cortex-M23 a Cortex-M33
- -mthumb volitelně pro zařízení Cortex-M
- Podpora operačních znovuzískání uzamykacích programů v newlib
- Pokročilá implementace optimalizace SIMD v newlib
- Povolte volby nastavení pro instalační program Windows na příkazovém řádku
- Důležité změny v vydání 6 aktualizace 2:
- GCC nesprávně předpokládá, že Cortex-r [578] má 64bitovou jednotnou kopii LDRD https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80082
- LDR pseudo-op generuje MOVS https://bugs.launchpad.net/gcc-arm-embedded/+bug/1682620
- Pevné FPSCR getter a setter builtins
- Knihovny importu SG, které byly vytvořeny jako spustitelné, jsou nyní pevně nastavitelné na přemístitelné
- Povolte volby nastavení pro instalační program Windows na příkazovém řádku
- Podpora PURECODE povolena pro ARMv8-M.Baseline
- Pokročilá implementace optimalizace SIMD v newlib
Co je nového ve verzi 5.4:
- Nové funkce:
- Podpora ARMv8-M Baseline a Mainline beta:
- ARMv8-M Základní atomická podpora
- podpora ARM PureCode
- Dlouhé větvičky Thumb-2
- Důležité chyby opravené v vydání 5 aktualizace 3:
- Odstraněny speciální registru MSP_S a PSP_S MRS / MSR
- Detekce pevných palebných verzí v generaci dýhy
- Opravená dokumentace o newlib-nano ve verzi release.txt
Co je nového ve verzi 5.3:
Co je nového ve verzi 5.2:
- Všechny funkce GCC 5 plus nejnovější funkce hlavní linky:
- Ladění výkonu Cortex-M7
- optimalizace ručních malých endiánových a velkých zatížení endianů
- Vylepšené závitové skoky, které odstraňují potřebu zkratky
- Podpora ARMv8-M Baseline a Mainline alfa:
- Atomy nejsou zahrnuty pro výchozí ARMv8-M
- Rozšíření zabezpečení ARMv8-M podporována pouze pro sestavení a základní propojení
- Optimalizace knihovny Thumb-1
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- CRC optimalizace
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
Co je nového ve verzi 4.9 Aktualizace 3:
- Funkce:
- Všechny funkce GCC 4.9 a nejnovější funkce hlavní linky
- podpora Cortex-M7
- Podpora malých násobků s možnostmi:
- . -mcpu = cortex-m1.small-multiply
- . -mcpu = cortex-m0.small-multiply
- . -mcpu = cortex-m0plus.small-multiply
- Věnovaná multilib pro 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
- Definujte rutiny aeabi_memcpy a aeabi_memcpy4 v newlib.
- Definujte rutiny aeabi_memmove, aeabi_memset a aeabi_memclr v newlib.
- Optimalizace knihovny Thumb-1.
- Další optimalizace velikosti kódu.
- Přidejte gdb python build (arm-none-eabi-gdb-py).
- Soubor objektů bez atributů může být propojen s ostatními.
- Možnosti -mapcs, -mapcs-frame, -mtpcs-frame a -mtpcs-leaf-frame budou v gcc 5.0 zastaralé, proto doporučujeme jim zabránit.
- Důležité chyby opravené v vydání 4.9 aktualizace 3:
- Oprava chyby specifikátoru formátu Newlib opravit. https://answers.launchpad.net/gcc-arm-embedded/+question/269083
- Oprava nového propojení s makro Newlib. https://answers.launchpad.net/gcc-arm-embedded/+question/269177
- Assembler kódování opravy chyb. https://sourceware.org/ml/binutils/2015-08/msg00028.html
Co je nového ve verzi 4.9 Aktualizace 2:
- Funkce:
- Všechny funkce GCC 4.9 a nejnovější funkce hlavní linky
- podpora Cortex-M7
- Podpora malých násobků s možnostmi:
- -mcpu = cortex-m1.small-multiply
- -mcpu = cortex-m0.small-multiply
- -mcpu = cortex-m0plus.small-multiply
- Věnovaná multilib pro 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
- Definujte rutiny aeabi_memcpy a aeabi_memcpy4 v newlib.
- Definujte rutiny aeabi_memmove, aeabi_memset a aeabi_memclr v newlib.
- Optimalizace knihovny Thumb-1.
- Další optimalizace velikosti kódu.
- Přidejte gdb python build (arm-none-eabi-gdb-py).
- Soubor objektů bez atributů může být propojen s ostatními.
- Možnosti -mapcs, -mapcs-frame, -mtpcs-frame a -mtpcs-leaf-frame budou v gcc 5.0 zastaralé, proto doporučujeme jim zabránit.
- Důležité chyby opravené v verzi 4.9 aktualizace 2:
- Aktualizoval nějaký inline kód sestavy v Newlibu, který pracoval se starými cíli https://www.sourceware.org/ml/newlib/2015/msg00386.html
- Vyvarujte se plýtvání způsobené propagací velikosti oddílu https://answers.launchpad.net/gcc-arm-embedded/+question/262160
- Místní registrové proměnné nefungují správně s inline asm operandy https://bugs.launchpad.net/gcc-arm-embedded/+bug/1411655
Co je nového ve verzi 4.9 Aktualizace 1:
- Funkce:
- Všechny funkce GCC 4.9 a nejnovější funkce hlavní linky
- - podpora Cortex-M7
- - Podpora malých násobků s možnostmi:
- . -mcpu = cortex-m1.small-multiply
- . -mcpu = cortex-m0.small-multiply
- . -mcpu = cortex-m0plus.small-multiply
- Věnovaná multilib pro 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
- Definujte rutiny aeabi_memcpy a aeabi_memcpy4 v newlib.
- Definujte rutiny aeabi_memmove, aeabi_memset a aeabi_memclr v newlib.
- Optimalizace knihovny Thumb-1.
- Další optimalizace velikosti kódu.
- Přidejte gdb python build (arm-none-eabi-gdb-py).
- Soubor objektů bez atributů může být propojen s ostatními.
- Možnosti -mapcs, -mapcs-frame, -mtpcs-frame a -mtpcs-leaf-frame budou v gcc 5.0 zastaralé, proto doporučujeme jim zabránit.
- Důležité chyby opravené v verzi 4.9 aktualizace 1:
- LD backport pro udržení nulové délky v konečném axf souboru
- Opravit selhání GDB způsobené odstraněním seskupených ladicích úseků
- Přidejte vzorec Thumb1 insn pro legalizaci instrukce, která přesune počítač do nízkého registru
- Aktualizovat GCC generovat Tag_ABI_HardFP_use podle nejnovějšího EABI doc
- Živý vysoký registr není uložen do funkčního prologu s -Os
- - var-info-path-expression selže pro vnořené struktury
Co je nového ve verzi 4.9:
- .org / bugzilla / show_bug.cgi? id = 15302
- GDB je inovována na 7.6 za účelem lepší podpory dwarf-3 a novějšího standardu https://answers.launchpad.net/gcc-arm-embedded/+question/234131 https://bugs.launchpad.net/gcc-arm -embedded / + bug / 1248981
- ICE při použití vysokého registru jako registru základny PIC pro cíl palce-1
Co je nového ve verzi 4.7 Aktualizace 3:
- Crash při kompilaci aplikací s pevnými body pomocí LTO https : //answers.launchpad.net/gcc-arm-embedded/+question/235582
- Pobočka k cíli určená symbolem skriptu linkeru https://sourceware.org/bugzilla/show_bug.cgi?id=15302
- Windows hostující gdb visí na nějakém bodu breakingu https://bugs.launchpad.net/gcc-arm-embedded/+bug/1197615
- Chybí nano odkaz na
Co je nového ve verzi 4.7 Aktualizace 2:
- Upgrade doc / *. texi na nejnovější balíček texinfo https: // answer.launchpad.net/gcc-arm-embedded/+question/227685
- Opravit modul ICE s volbou -mtune https://answers.launchpad.net/gcc-arm-embedded/+question/227667
- Možnost opravit - vynechat ve skriptu sestavení https://answers.launchpad.net/gcc-arm-embedded/+question/229127
- Opravte nepotřebnou lr uložit do funkce listu palec
Co je nového ve verzi 4.7 Aktualizace 1:
- 4.7 hlavní:
- Verze hostitele Mac OS má závislost na Pythonu
- Selhání LTO při instalaci do adresáře s mezery v názvu cesty http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293
- Načíst adresu datových sekcí obsahujících sladěná data http://sourceware.org/bugzilla/show_bug.cgi?id=15222
- libnosys nekontroluje přetečení zásobníku https://answers.launchpad.net/gcc-arm-embedded/+question/218972
- librdimon.a neodpovídá novélib-nano
- Získá také konfiguraci sestavení upravenou pro povolení:
- Základní profil Cortex-A multilib
- LTO (Link Time Optimization)
Komentáře nebyl nalezen