GCC ARM Embedded este un software open source și distribuit gratuit, care conține o unitate de instrumente GNU pre-construită pentru procesoarele ARM Cortex-R și Cortex-M. Proiectul își propune să aducă Instrumentele GNU la procesoarele încorporate ARM, ajutând dezvoltatorii cu diverse sarcini de compilare.
Suporta toate procesoarele importante Cortex ARM
Software-ul a fost creat de la început pentru a susține toate procesoarele importante Cortex ARM, inclusiv Cortex-R4, Cortex-R5, Cortex-R7, Cortex-M3, Cortex-M4, Cortex-M7, și Cortex-M0.
Fiind întreținută de angajații ARM, software-ul GCC ARM Embedded face parte dintr-un angajament continuu de a spori și menține suportul pentru Colecția GNU Compiler (GCC) pentru arhitectura ARM.
Noțiuni introductive despre GCC ARM Embedded
Pentru a utiliza software-ul GCC ARM Embedded pe computerul GNU / Linux, trebuie să descărcați pachetul binar, care conține toate binarele pre-construite de care aveți nevoie pentru a începe. Salvați arhiva undeva de pe computer, de preferință directorul dvs. de acasă, utilizați un utilitar de manager de arhivă pentru a extrage conținutul acestuia.
Apoi, deschideți o aplicație Terminal și navigați la locația unde ați extras fișierul de arhivă (de exemplu, cd / home / softoware / gcc-arm-none-eabi-4_9-2014q4). Toate fișierele binare sunt situate pe & bsquo; dosar.
Disponibilitatea și platformele hardware acceptate
GCC ARM Embedded este distribuit ca arhivă binară și sursă, precum și un depozit PPA pentru cele mai recente versiuni ale sistemului de operare Ubuntu Linux, care suportă arhitecturi de 32 și 64 de biți. Rețineți că software-ul este de asemenea compatibil cu sistemele de operare Mac OS X și Microsoft Windows.
Ce este nou în această ediție:
- Regresia de performanță a powf / expf / exp2f / logf / log2f fixă
- Adăugat suport pentru Arm Cortex-M33 fără DSP prin -mcpu = cortex-m33 + nodsp
- Adăugate mapări ale multimii Armv8-R
- Stabiliți cerințele de construire pentru suportul GDB tui
- A fost activat specificatorul de format C99 IO în newlib
- Fixată cmse_nonsecure_caller Armv8-M Extensie de securitate intrinsecă
- Rezolvarea unui accident în __builtin_arm_set_fpscr GCC builtin
- LTO bug https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966 a fost fixat în versiunea precedentă. Notă de actualizare actualizată pentru a reflecta modificarea.
- Problemă fixă cu construirea cmse.c a libgcc fără anteturi
- Problemă fixă cu compatibilitatea arm_cmse.h C99
Ce este nou în versiunea 7-2017-q4:
- Support Armv8-R și Cortex-R52 .
- Remediere pentru https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69866
- GDB construit cu C ++ activat pentru Mac OS X
Ce este nou în versiunea 6.2:
- Caracteristici:
- Toate caracteristicile GCC 6, plus cele mai recente caracteristici principale:
- Asistență completă ARMv8-M, inclusiv atomică și Extensii de securitate
- Suport ARM PURECODE pentru ARMv7-M și ARMv8-M Baseline și Mainline
- Suport pentru coin-procesor intrinsecă
- Cortex-M23 și suport Cortex-M33
- -mthumb opțional pentru dispozitivele Cortex-M
- Suport pentru OS-retargeting de rutine de blocare în newlib
- Implementarea avansată a memchr-optimizat SIMD în newlib
- Activați opțiunile de setare pentru programul de instalare Windows pe linia de comandă
- Schimbări importante în lansarea versiunii 6:
- GCC presupune incorect că Cortex-r [578] are un LDRD atomic pe o singură copie pe 64 de biți https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80082
- LDR pseudo-op generează MOVS https://bugs.launchpad.net/gcc-arm-embedded/+bug/1682620
- Fișiere fixe FPSCR și setter builtins
- Bibliotecile de import SG care au fost create ca executabile, au fost fixate acum la transferabile
- Activați opțiunile de setare pentru programul de instalare Windows pe linia de comandă
- Suportul PURECODE activat pentru ARMv8-M.Baseline
- Implementarea avansată a memchr-optimizat SIMD în newlib
Ce este nou în versiunea 5.4:
- Caracteristici noi:
- Asistență ARMv8-M pentru linia de bază și pentru beta principal:
- ARMv8-M Asistență atomică inițială
- suport ARM PureCode
- Fibre lungi de ramificație Thumb-2
- Remedierea unor erori importante în versiunea 5 de actualizare 3:
- Au fost eliminate registrele speciale MSP_S și PSP_S MRS / MSR
- Detectarea versiunii Fix Thumb în generarea de furnir
- Documentație fixă despre newlib-nano în release.txt
Ce este nou în versiunea 5.3:
Ce este nou în versiunea 5.2:
- Toate caracteristicile GCC 5, plus cele mai recente caracteristici principale:
- Corecția de performanță Cortex-M7
- optimizarea încărcărilor mici endianice mici și endianice mari
- Îmbinarea îmbunătățită a sarcinii, eliminând necesitatea comenzii rapide pentru comutare
- Suport ARMv8-M de bază și principal alfa:
- atomicii nu sunt incluși pentru ARMv8-M inițial
- Extensiile de securitate ARMv8-M sunt acceptate numai pentru asamblarea și corelarea de bază
- Optimizări bibliotecă Thumb-1
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- Optimizarea CRC
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
Ce este nou în versiunea 4.9 Actualizare 3:
- Caracteristici:
- Toate caracteristicile GCC 4.9, plus cele mai noi caracteristici principale
- Sprijin pentru Cortex-M7
- Suport multiplu mic cu opțiuni:
- . -mcpu = cortex-m1.small-multiplica
- . -mcpu = cortex-m0.small-multiplica
- . -mcpu = cortex-m0plus.small-multiplica
- Multilib dedicat pentru 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
- Definiți rutinele aeabi_memcpy și aeabi_memcpy4 în newlib.
- Definiți rutinele aeabi_memmove, aeabi_memset și aeabi_memclr în newlib.
- Optimizări bibliotecă Thumb-1.
- Optimizări suplimentare pentru dimensiunea codului.
- Adăugați gdb python build (arm-none-eabi-gdb-py).
- Fișierul obiect fără secțiune de atribute poate fi asociat cu oricare alții.
- Opțiunile -mapcs, -mapcs-frame, -mtpcs-frame și -mtpcs-frame-frame vor fi depreciate în gcc 5.0, deci recomandăm să le evitați.
- Remedierea unor erori importante în versiunea 4.9 a actualizării 3:
- Fixarea neconcordanței specificatorului de format Newlib. https://answers.launchpad.net/gcc-arm-embedded/+question/269083
- Fixarea neconcordanței macroului Newlib. https://answers.launchpad.net/gcc-arm-embedded/+question/269177
- Asamblarea codificării bug-ului pentru asamblare. https://sourceware.org/ml/binutils/2015-08/msg00028.html
Ce este nou în versiunea 4.9 Actualizare 2:
- Caracteristici:
- Toate caracteristicile GCC 4.9, plus cele mai noi caracteristici principale
- Sprijin pentru Cortex-M7
- Suport multiplu mic cu opțiuni:
- -mcpu = cortex-m1.small-multiplica
- -mcpu = cortex-m0.small-multiplica
- -mcpu = cortex-m0plus.small-multiplica
- Multilib dedicat pentru 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
- Definiți rutinele aeabi_memcpy și aeabi_memcpy4 în newlib.
- Definiți rutinele aeabi_memmove, aeabi_memset și aeabi_memclr în newlib.
- Optimizări bibliotecă Thumb-1.
- Optimizări suplimentare pentru dimensiunea codului.
- Adăugați gdb python build (arm-none-eabi-gdb-py).
- Fișierul obiect fără secțiune de atribute poate fi asociat cu oricare alții.
- Opțiunile -mapcs, -mapcs-frame, -mtpcs-frame și -mtpcs-frame-frame vor fi depreciate în gcc 5.0, deci recomandăm să le evitați.
- Remedierea unor erori importante în versiunea 4.9 de actualizare 2:
- Actualizat un cod de asamblare inline în Newlib pentru a lucra cu obiectivele vechi https://www.sourceware.org/ml/newlib/2015/msg00386.html
- Evitați pierderea cauzată de promovarea mărimii secțiunii https://answers.launchpad.net/gcc-arm-embedded/+quot/262160
- Variabilele registrului local nu funcționează corect cu operatorii inline https://bugs.launchpad.net/gcc-arm-embedded/+bug/1411655
Ce este nou în versiunea 4.9 Actualizarea 1:
- Caracteristici:
- Toate caracteristicile GCC 4.9, plus cele mai noi caracteristici principale
- - suport Cortex-M7
- - suport multiplu mic cu opțiuni:
- . -mcpu = cortex-m1.small-multiplica
- . -mcpu = cortex-m0.small-multiplica
- . -mcpu = cortex-m0plus.small-multiplica
- Multilib dedicat pentru 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
- Definiți rutinele aeabi_memcpy și aeabi_memcpy4 în newlib.
- Definiți rutinele aeabi_memmove, aeabi_memset și aeabi_memclr în newlib.
- Optimizări bibliotecă Thumb-1.
- Optimizări suplimentare pentru dimensiunea codului.
- Adăugați gdb python build (arm-none-eabi-gdb-py).
- Fișierul obiect fără secțiune de atribute poate fi asociat cu oricare alții.
- Opțiunile -mapcs, -mapcs-frame, -mtpcs-frame și -mtpcs-frame-frame vor fi depreciate în gcc 5.0, deci recomandăm să le evitați.
- Important bug-uri fixate în versiunea 4.9 update 1:
- LD backport pentru a păstra secțiunea de lungime zero în fișierul axf final
- Remediarea unui accident de tip GDB cauzat de eliminarea secțiunilor grupate de depanare
- Adăugați un model Thumb1 insn pentru a legaliza instrucțiunile care mută PC-ul la registru scăzut
- Actualizați GCC pentru a genera Tag_ABI_HardFP_use pe ultimul document EABI
- Înregistratorul live înalt nu este salvat în prologul de funcții cu -Os
- - expresia var-info-path-fail pentru structurile imbricate
Ce este nou în versiunea 4.9:
- .org / bugzilla / show_bug.cgi? id = 15302
- GDB este modernizat la 7.6 pentru a suporta mai bine dwarf-3 și standardul ulterior https://answers.launchpad.net/gcc-arm-embedded/+question/234131 https://bugs.launchpad.net/gcc-arm -embedded / + bug / 1248981
- ICE când utilizați înregistrarea înaltă ca registru de bază PIC pentru ținta thumb-1
Ce este nou în versiunea 4.7 Actualizare 3:
- Crash atunci când compilați aplicația punct fix cu LTO https : //answers.launchpad.net/gcc-arm-embedded/+question/235582
- Sucursala către țintă specificată de un simbol al scriptului de link-uri https://sourceware.org/bugzilla/show_bug.cgi?id=15302
- Windows-ul găzduit de gdb atârnă la o anumită pauză https://bugs.launchpad.net/gcc-arm-embedded/+bug/1197615
- Nano referință lipsă la _mallopt_r https://mbed.org/forum/mbed/topic/2701/?page=3#comment-22549
Ce este nou în versiunea 4.7 Actualizare 2:
- Actualizați doc / *. texi la cel mai recent pachet texinfo https: // answers.launchpad.net/gcc-arm-embedded/+question/227685
- Fixați ICE cu opțiunea -mtune https://answers.launchpad.net/gcc-arm-embedded/+quot/227667
- Opțiunea Fix --debug în scriptul de construcție https://answers.launchpad.net/gcc-arm-embedded/+question/229127
- Fixați lr inutil, salvați în funcția de frunză thumb1
Ce este nou în versiunea 4.7 Actualizarea 1:
- 4,7 majore:
- Versiunea gazdă Mac OS are dependență de Python
- Eroare LTO când este instalată în directorul cu spațiu în numele căii http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293
- Încărcați adresa secțiunilor de date care conțin date aliniate http://sourceware.org/bugzilla/show_bug.cgi?id=15222
- libnosys nu verifică depășirea stivei https://answers.launchpad.net/gcc-arm-embedded/+question/218972
- librdimon.a nu se potrivește cu newlib-nano
- Se obține configurația de configurare ajustată pentru a activa:
- Profilul de bază Cortex-A multilib
- LTO (Link Time Optimization)
Comentariile nu a fost găsit