GCC ARM Embedded on avoimen lähdekoodin ja vapaasti levitettävän ohjelmiston, joka sisältää ennalta valmistetun GNU-työkalukansi ARM Cortex-R- ja Cortex-M-prosessoreille. Projekti pyrkii tuomaan GNU-työkalut ARM-sulautettuihin prosessoreihin, jotka auttavat kehittäjiä erilaisilla kokoamiskohteilla.
Tukee kaikkia tärkeitä Cortex ARM -suorittimia
Ohjelmisto on luotu lähtien tukemaan kaikkia tärkeitä Cortex ARM -suorittimia, kuten Cortex-R4, Cortex-R5, Cortex-R7, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M0 + ja Cortex-M0.
ARM-työntekijöiden ylläpitämä GCC ARM Embedded -ohjelma on osa jatkuvaa sitoutumista parantaa ja ylläpitää GNU Compiler Collection (GCC) -tuotetta ARM-arkkitehtuurille.
Aloittaminen GCC ARM Embedded -ohjelmistolla
Jos haluat käyttää GCC ARM Embedded -ohjelmistoa GNU / Linux-tietokoneellesi, lataa binääri-paketti, joka sisältää kaikki valmiiksi rakennetut binäärit, jotka sinun on aloitettava. Tallenna arkisto jonnekin tietokoneellesi, mieluiten kotihakemistasi, käytä arkistonhallinta-apuohjelmaa sen sisällön poistamiseen.
Avaa Terminal -sovellus ja siirry sen sijainnin kohdalle, josta olet lisännyt arkistotiedoston (esim. cd / home / softoware / gcc-arm-none-eabi-4_9-2014q4). Kaikki binäärit sijaitsevat & lsquo; bin & rsquo; kansio.
Saatavuus ja tuetut laitealustat
GCC ARM Embedded toimitetaan binääri- ja lähdetiedostoina sekä Ubuntun Linux-käyttöjärjestelmän viimeisimpien julkaisujen PPA-arkistoon, joka tukee sekä 32- että 64-bittisiä arkkitehtuureita. Huomaa, että ohjelmisto on yhteensopiva Mac OS X- ja Microsoft Windows -käyttöjärjestelmien kanssa.
Mitä uutta strong> on tässä versiossa:
- Kiinteä powf / expf / exp2f / logf / log2f suorituskyvyn regressio
- Lisätty tuki Arm Cortex-M33: lle ilman DSP: tä kautta -mcpu = cortex-m33 + nodsp
- Lisätty Armv8-R multilib -määritykset
- Räätälöi tarvittavat vaatimukset GDB tui -tuelle
- Käytetty C99 IO -formaatin määritteli newlib
- Kiinteä cmse_nonsecure_caller Armv8-M Security Extension inherent
- Korjaa kaatuminen __builtin_arm_set_fpscr GCC sisäänrakennettu
- LTO-virhe https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966 korjattiin aiemmassa versiossa. Julkaisutiedosto päivitettiin muutoksen huomioon ottamiseksi.
- Kiinteä ongelma rakentamalla libgcc: n cmse.c ilman otsikoita li>
- Kiinteä ongelma arm_cmse.h C99 -yhteensopivuuden kanssa
- Armv8-R- ja Cortex-R52-tuki .
- Korjaa https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69866
- GDB on rakennettu C ++ -ohjelmalla, joka on käytössä Mac OS X: ssä
- Ominaisuudet:
- Kaikki GCC 6 -ominaisuudet sekä viimeisimmät pääominaisuudet:
- Täysi ARMv8-M-tuki, mukaan lukien atomi- ja tietoturva-laajennukset
- ARM PURECODE-tuki ARMv7-M: lle ja ARMv8-M: n perusviivalle ja päärekisterille
- Yhteisprosessorin sisäinen tuki
- Cortex-M23 ja Cortex-M33 -tuki
- -mthumb valinnainen Cortex-M-laitteille
- Tuki newlibin lukitusrutiineihin OS: n uudelleensuunnittelulle
- Kehittynyt SIMD-optimoidun memchr-toteutuksen newlib-sovelluksessa
- Ota käyttöön Windowsin asennusohjelman asetusvaihtoehdot komentorivillä
- Tärkeitä muutoksia 6 päivityksen 2 julkaisussa:
- GCC virheellisesti olettaa, että Cortex-r [578] on 64-bittinen yhden kopion atomi LDRD https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80082
- LDR pseudo-op luo MOVS: n https://bugs.launchpad.net/gcc-arm-embedded/+bug/1682620
- Kiinteät FPSCR-getter ja setter builtins
- SG tuontikirjastot, jotka luotiin suoritettaviksi, nyt vahvistettu uudelleensijoittaviksi
- Ota käyttöön Windowsin asennusohjelman asetusvaihtoehdot komentorivillä
- PURECODE-tuki on käytössä ARMv8-M.Baseline
- Kehittynyt SIMD-optimoidun memchr-toteutuksen newlib-sovelluksessa
- Uudet ominaisuudet:
- ARMv8-M Baseline ja Mainline beta -tuki:
- ARMv8-M: n lähtötason atomituki
- ARM PureCode-tuki
- Thumb-2 pitkät oksat viilut
- Tärkeät bugit, jotka on määritetty 5 päivityksen 3 julkaisussa:
- Poistetaan MSP_S- ja PSP_S-MRS / MSR-rekisterit
- Kiinteä Thumb-versio havainnointi viilun tuottamisessa
- Kiinteät dokumentit newlib-nanosta julkaisussa release.txt
- Ominaisuudet:
- Kaikki GCC 5 -ominaisuudet sekä viimeisimmät pääominaisuudet:
- Cortex-R8 -tuki
- Cortex-M7 -toiminnon viritys
- manuaalisen pienen endian ja suuren endian-kuormituksen optimointi
- parannettu hyppyviimeistely, joka poistaa tarpeettomuuden -vaihtopyyhkäisyn
- ARMv8-M-perusviiva ja Mainline-alfa-tuki:
- Atomiat eivät sisälly ARMv8-M-lähtötasoon
- ARMv8-M-tietoturvapäivitykset Alpha -tuki
- Thumb-1-kirjaston optimoinnit:
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- CRC-optimointi:
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
- Pienempi lopetuskäsittelijä newlib-nanolle
- Kaikki GCC 5 -ominaisuudet sekä viimeisimmät mainline-ominaisuudet:
- Cortex-M7 -toiminnon viritys
- manuaalisen pienen endian ja suuren endian-kuormituksen optimointi
- parannettu hyppyviimeistely, joka poistaa tarpeettomuuden -vaihtopyyhkäisyn
- ARMv8-M-perusviiva ja Mainline-alfa-tuki:
- Atomiat eivät sisälly ARMv8-M-lähtötasoon
- ARMv8-M-tietoturva-laajennukset, joita tuetaan vain kokoamisen ja perusliitoksen yhdistämiseen
- Thumb-1-kirjaston optimoinnit
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- CRC-optimointi
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
- Ominaisuudet:
- Kaikki GCC 4.9 -ominaisuudet sekä viimeisimmät pääominaisuudet
- Cortex-M7-tuki
- Pieni moninkertainen tuki vaihtoehtoilla:
- . -mcpu = aivokuori-m1.small-moninkertaisesti
- . -mcpu = aivokuori-m0.small-moninkertaisesti
- . -mcpu = aivokuori-m0plus.small-moninkertaisesti
- Cortex-M7: n omistettu multilib
- - cortex-m7
- - cortex-m7 / fpu / fpv5-d16
- - cortex-m7 / fpu / fpv5-sp-d16
- - cortex-m7 / softfp / fpv5-d16
- - cortex-m7 / softfp / fpv5-sp-d16
- Määritä aeabi_memcpy ja aeabi_memcpy4 rutiinit newlib: ssä.
- Määrittele aeabi_memmove, aeabi_memset ja aeabi_memclr rutiineja newlib: ssä.
- Thumb-1-kirjaston optimointi.
- Lisäkoodikokooptimoinnit.
- Lisää gdb python -rakenne (arm-none-eabi-gdb-py).
- Objektitiedosto ilman attribuuttiosaa voidaan yhdistää mihinkään muuhun.
- Asetukset -mapcs, -mapcs-frame, -mtpcs-frame ja -mtpcs-leaf-frame poistetaan käytöstä gcc 5.0: ssä, joten suosittelemme välttämään niitä.
- Tärkeät bugit, jotka on korjattu 4.9 päivityksen 3 julkaisussa:
- Newlib-muodon määrittimen yhteensopimattomuus. https://answers.launchpad.net/gcc-arm-embedded/+question/269083
- Newlib makron yhteensopimattomuus. https://answers.launchpad.net/gcc-arm-embedded/+question/269177
- Assembler koodaa virheenkorjausta. https://sourceware.org/ml/binutils/2015-08/msg00028.html
- Ominaisuudet:
- Kaikki GCC 4.9 -ominaisuudet sekä viimeisimmät pääominaisuudet
- Cortex-M7-tuki
- Pieni moninkertainen tuki vaihtoehtoilla:
- -mcpu = aivokuori-m1.small-moninkertaisesti
- -mcpu = aivokuori-m0.small-moninkertaisesti
- -mcpu = aivokuori-m0plus.small-moninkertaisesti
- Cortex-M7: lle omistettu multilib:
- cortex-M7
- cortex-M7 / FPU / fpv5-D16
- cortex-M7 / FPU / fpv5-SP-D16
- cortex-M7 / softfp / fpv5-D16
- cortex-M7 / softfp / fpv5-SP-D16
- Määritä aeabi_memcpy ja aeabi_memcpy4 rutiinit newlib: ssä.
- Määrittele aeabi_memmove, aeabi_memset ja aeabi_memclr rutiineja newlib: ssä.
- Thumb-1-kirjaston optimointi.
- Lisäkoodikokooptimoinnit.
- Lisää gdb python -rakenne (arm-none-eabi-gdb-py).
- Objektitiedosto ilman attribuuttiosaa voidaan yhdistää mihinkään muuhun.
- Asetukset -mapcs, -mapcs-frame, -mtpcs-frame ja -mtpcs-leaf-frame poistetaan käytöstä gcc 5.0: ssä, joten suosittelemme välttämään niitä.
- Tärkeät virheet, jotka on korjattu 4.9 päivityksen 2 julkaisussa:
- Päivitetty joitakin inline-kokoonpanokoodia Newlibissä vanhojen kohteiden kanssa https://www.sourceware.org/ml/newlib/2015/msg00386.html
- Vältä hukkumääriä, jotka johtuvat leikkauskokoa edistävistä tiedoista https://answers.launchpad.net/gcc-arm-embedded/+question/262160
- Paikalliset rekisterimuuttujat eivät toimi oikein inline asm -operandien kanssa https://bugs.launchpad.net/gcc-arm-embedded/+bug/1411655
- Ominaisuudet:
- Kaikki GCC 4.9 -ominaisuudet sekä viimeisimmät pääominaisuudet
- - Cortex-M7-tuki
- - Pieni moninkertainen tuki vaihtoehtoilla:
- . -mcpu = aivokuori-m1.small-moninkertaisesti
- . -mcpu = aivokuori-m0.small-moninkertaisesti
- . -mcpu = aivokuori-m0plus.small-moninkertaisesti
- Cortex-M7: n omistettu multilib
- - cortex-m7
- - cortex-m7 / fpu / fpv5-d16
- - cortex-m7 / fpu / fpv5-sp-d16
- - cortex-m7 / softfp / fpv5-d16
- - cortex-m7 / softfp / fpv5-sp-d16
- Määritä aeabi_memcpy ja aeabi_memcpy4 rutiinit newlib: ssä.
- Määrittele aeabi_memmove, aeabi_memset ja aeabi_memclr rutiineja newlib: ssä.
- Thumb-1-kirjaston optimointi.
- Lisäkoodikokooptimoinnit.
- Lisää gdb python -rakenne (arm-none-eabi-gdb-py).
- Objektitiedosto ilman attribuuttiosaa voidaan yhdistää mihinkään muuhun.
- Asetukset -mapcs, -mapcs-frame, -mtpcs-frame ja -mtpcs-leaf-frame poistetaan käytöstä gcc 5.0: ssä, joten suosittelemme välttämään niitä.
- Tärkeät virheet, jotka on korjattu 4.9 päivityksen 1 julkaisussa:
- LD-takaisinportti pitämään nollapituuden osaa lopullisessa axf-tiedostossa
- Räätälöidyt virheenkorjausosat pois käytöstä korjaa GDB-kaatuminen
- Lisää Thumb1 insn -kuvake legalisoidaksesi tietokoneen siirrettävän rekisterin ohjeen
- Päivitä GCC tuottaa Tag_ABI_HardFP_use viimeisimmästä EABI-dokumentista li>
- Live korkea -rekisteriä ei tallenneta toiminto-prologiin -Os
- - var-info-polku-lauseke epäonnistuu sisäkkäisissä osissa
- .org / Bugzilla / show_bug.cgi? id = 15302
- GDB päivitetään 7.6: ään paremmin tukemaan kääpiö-3: n ja uudempia standardeja https://answers.launchpad.net/gcc-arm-embedded/+question/234131 https://bugs.launchpad.net/gcc-arm -Embedded / + bug / 1248981
- ICE, kun käytetään korkeaa rekisteriä PIC-perusrekisteriä peukalo-1-tavoite
- : //answers.launchpad.net/gcc-arm-embedded/+question/235582
- Liitä linkkikoodisymbolilla määritetty haara osoitteeseen https://sourceware.org/bugzilla/show_bug.cgi?id=15302
- Windows isännöi gdb-jumia jossakin määrin. https://bugs.launchpad.net/gcc-arm-embedded/+bug/1197615
- Nano puuttuu viittaus _mallopt_r https://mbed.org/forum/mbed/topic/2701/?page=3#comment-22549
- Päivitä doc / *. texi uusimpaan texinfo-pakettiin https: // answers.launchpad.net/gcc-arm-embedded/+question/227685
- Korjaa ICE-toiminnolla -mtune -vaihtoehto https://answers.launchpad.net/gcc-arm-embedded/+question/227667
- Fix --debug -vaihtoehto rakennussivustossa https://answers.launchpad.net/gcc-arm-embedded/+question/229127
- Korjaa tarpeettomat lr-tallennukset thumb1-lehtitoiminnolla
- Tämä päivitysversio korjaa muutaman ongelman, joka löytyy osoitteesta p>
4.7 major:
- Mac OS -palvelinversio on python-riippuvuus
- LTO-vika, kun se on asennettu hakemistoon, jossa on tilaa polun nimessä. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293
- Lataa tiedot, jotka sisältävät kohdistettuja tietoja sisältäviä tietoja. http://sourceware.org/bugzilla/show_bug.cgi?id=15222
- libnosys ei tarkista pinon ylivuotoa https://answers.launchpad.net/gcc-arm-embedded/+question/218972
- librdimon.a ei vastaa newlib-nano
- Se saa myös rakennekokoonpanon, joka sopeutetaan:
- Basic Cortex-profiili multilib
- LTO (Link Time Optimization)
Uutta strong> versiossa 6.2:
Uutta strong> versiossa 5.4:
Uutta strong> versiossa 5.3:
Uutta strong> versiossa 5.2:
Uutta strong> version 4.9 päivityksessä 3:
Uutta strong> version 4.9 päivityksessä 2:
Uutta strong> versiossa 4.9 Päivitys 1:
Uutta strong> versiossa 4.9:
Uutta strong> versiossa 4.7 Päivitys 3:
Uutta strong> version 4.7 päivityksessä 2:
Kommentteja ei löytynyt