GCC ARM Embedded , ARM Cortex-R ve Cortex-M işlemcileri için önceden oluşturulmuş bir GNU takım zincirini içeren açık kaynaklı ve serbestçe dağıtılmış bir yazılımdır. Proje, GNU Araçlarını ARM Gömülü İşlemcilere getirmeyi ve çeşitli derleme görevleriyle geliştiricilere yardımcı olmayı hedefliyor.
Tüm önemli Cortex ARM işlemcileri destekler
Yazılım, Cortex-R4, Cortex-R5, Cortex-R7, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M0 + dahil olmak üzere tüm önemli Cortex ARM işlemcilerini desteklemek için sıfırdan oluşturulmuştur. ve Cortex-M0.
ARM çalışanları tarafından sürdürülen GCC ARM Gömülü yazılım, ARM mimarisi için GNU Derleyici Toplama (GCC) desteğini geliştirmeye ve sürdürmeye devam eden taahhüdün bir parçasıdır.
GCC ARM Embedded ile çalışmaya başlama
GNU / Linux bilgisayarınıza GCC ARM Embedded yazılımını kullanmak için, başlamanız gereken tüm önceden oluşturulmuş ikili dosyaları içeren ikili paketi indirmelisiniz. Arşivinizi bilgisayarınızda bir yere kaydedin, tercihen Giriş dizininizi, içeriğini çıkarmak için bir arşiv yöneticisi yardımcı programını kullanın.
Ardından bir Terminal uygulamasını açın ve arşiv dosyasını çıkardığınız konuma gidin (ör. cd / home / softoware / gcc-arm-none-eabi-4_9-2014q4). Tüm ikili dosyalar & lsquo; bin & rsquo; klasörü.
Kullanılabilirlik ve desteklenen donanım platformları
GCC ARM Embedded, hem 32 hem de 64 bit mimarileri destekleyen, Ubuntu Linux işletim sisteminin en son sürümleri için bir PPA deposunun yanı sıra, ikili ve kaynak arşivler olarak dağıtılır. Yazılımın Mac OS X ve Microsoft Windows işletim sistemleriyle de uyumlu olduğunu lütfen unutmayın.
Bu sürümde yeni olan :
- Sabit powf / expf / exp2f / logf / log2f performans regresyonu
- DSP'siz Arm Cortex-M33 desteği için -mcpu = cortex-m33 + nodsp desteği eklendi.
- Armv8-R multilib eşlemeleri eklendi
- GDB tui desteği için yapı gereksinimlerini düzeltin
- Newlib'de C99 IO format belirteci etkinleştirildi
- Sabit cmse_nonsecure_caller Armv8-M Güvenlik Uzantısı intrinsik
- __builtin_arm_set_fpscr GCC yerleşmesindeki kilitlenmeyi onar
- LTO sürümü https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966 önceki sürümde düzeltildi. Değişiklik, değişikliği yansıtacak şekilde güncellendi.
- Libgcc'nin cmse.c'sini üstbilgiler olmadan oluşturmaya ilişkin sorun
- arm_cmse.h C99 uyumluluğu ile ilgili sorun
7-2017-q4 sürümündeki yeni :
- Armv8-R ve Cortex-R52 desteği .
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69866 için düzeltme
- Mac OS X için C ++ ile oluşturulmuş GDB
Sürüm 6.2’de yeni: :
- Özellikler:
- Tüm GCC 6 özellikleri ve en son ana hat özellikleri:
- Atomik ve Güvenlik Uzantıları dahil olmak üzere tam ARMv8-M desteği
- İşbirlikçi içsel desteği
- Cortex-M23 ve Cortex-M33 desteği
- -mthumb
- Newlib'de kilitleme rutinlerinin işletim sistemini yeniden hedefleme desteği
- Newlib'de gelişmiş SIMD için optimize edilmiş memchr uygulaması
- Komut satırında Windows yükleyicisi için ayar seçeneklerini etkinleştir
- 6 güncelleme 2 sürümündeki önemli değişiklikler:
- GCC, Cortex-r [578] 'in 64 bit tek kopya atomik LDRD https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80082 olduğunu yanlış varsaymaktadır
- LDR sözdizimi, MOVS oluşturur https://bugs.launchpad.net/gcc-arm-embedded/+bug/1682620
- Sabit FPSCR alıcı ve ayarlayıcı yerleşimleri
- Yeniden yüklenebilir duruma getirilebilir olarak oluşturulmuş SG içe aktarma kitaplıkları
- Komut satırında Windows yükleyicisi için ayar seçeneklerini etkinleştir
- PURECODE desteği etkinleştirildi
- Newlib'de gelişmiş SIMD için optimize edilmiş memchr uygulaması
ARMv7-M ve ARMv8-M Baseline ve Mainline için ARM PURECODE desteği
Cortex-M cihazları için isteğe bağlı
ARMv8-M.Baseline için
Sürüm 5.4’te yeni: :
- Yeni Özellikler:
- ARMv8-M Baseline ve Mainline beta desteği:
- ARMv8-M Temel atomik desteği
- ARM PureCode desteği
- Thumb-2 uzun şube kaplamaları
- 5 güncelleştirme 3 sürümünde giderilen önemli hatalar:
- MSP_S ve PSP_S MRS / MSR özel kayıtlarını kaldırıldı
- Kaplama üretiminde Sabit Başparmak sürüm algılama
- release.txt dosyasında newlib-nano hakkında sabit belgeler
Sürüm 5.3’de yeni :
- Özellikler:
- Tüm GCC 5 özellikleri ve en son ana hat özellikleri:
- Cortex-R8 desteği
- Cortex-M7 performans ayarı
- manuel küçük endian ve büyük endian yüklerin optimizasyonu
- -sevimli anahtar kısayolu ihtiyacını ortadan kaldırarak daha iyi atlama ipliği
- ARMv8-M Baseline ve Mainline alpha desteği:
- ARMv8-M Baseline için atomik dahil değildir
- ARMv8-M Güvenlik Uzantıları Alfa desteği
- Başparmak-1 kütüphane optimizasyonları:
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- CRC optimizasyonu:
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
- newlib-nano için küçük sonlandırıcı işleyici
Sürüm 5.2’de yeni: :
- Tüm GCC 5 özellikleri ve en son ana hat özellikleri:
- Cortex-M7 performans ayarı
- manuel küçük endian ve büyük endian yüklerin optimizasyonu
- -sevimli anahtar kısayolu ihtiyacını ortadan kaldırarak daha iyi atlama ipliği
- ARMv8-M Baseline ve Mainline alpha desteği:
- ARMv8-M Baseline için atomik dahil değildir
- ARMv8-M Güvenlik Uzantıları yalnızca montaj ve temel bağlantı için desteklenir
- Başparmak-1 kütüphane optimizasyonları
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- CRC optimizasyonu
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
Sürüm 4.9'da yeni olan nedir? : Güncelleme 3:
- Özellikler:
- Tüm GCC 4.9 özellikleri ve en son ana hat özellikleri
- Cortex-M7 desteği
- Seçeneklerle küçük çarpma desteği:
- . -mcpu = korteks-m1.small-çarpma
- . -mcpu = korteks-m0.small-çarpma
- . -mcpu = korteks-m0plus.small-çarpma
- Cortex-M7 için özel 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
- newlib'de aeabi_memcpy ve aeabi_memcpy4 rutinlerini tanımlayın.
- newlib'de aeabi_memmove, aeabi_memset ve aeabi_memclr rutinlerini tanımlayın.
- Başparmak-1 kütüphane optimizasyonları.
- Ek kod boyutu optimizasyonları.
- gdb python yapısını ekleyin (arm-none-eabi-gdb-py).
- Özellik bölümü olmayan nesne dosyası başkalarıyla ilişkilendirilebilir.
- -mapcs, -mapcs-frame, -mtpcs-frame ve -mtpcs-leaf-frame seçenekleri gcc 5.0'da kullanımdan kaldırılacaktır. Bu nedenle, bunlardan kaçınmanızı öneririz.
- 4.9 sürümünde düzeltilen önemli hatalar 3 sürümünün güncellenmesi:
- Newlib biçimi belirteci uyuşmazlığı düzeltildi. https://answers.launchpad.net/gcc-arm-embedded/+question/269083
- Newlib makro uyuşmazlığı düzeltildi. https://answers.launchpad.net/gcc-arm-embedded/+question/269177
- Assembler kodlama hata düzeltmesi. https://sourceware.org/ml/binutils/2015-08/msg00028.html
- Özellikler:
- Tüm GCC 4.9 özellikleri ve en son ana hat özellikleri
- Cortex-M7 desteği
- Seçeneklerle küçük çarpma desteği:
- -mcpu = korteks-m1.small-çarpma
- -mcpu = korteks-m0.small-çarpma
- -mcpu = korteks-m0plus.small-çarpma
- Cortex-M7 için özel multilib:
- korteks-m7
- korteks-m7 / fpu / fpv5-D16
- korteks-m7 / fpu / fpv5-sp-D16
- korteks-m7 / softfp / fpv5-D16
- korteks-m7 / softfp / fpv5-sp-D16
- newlib'de aeabi_memcpy ve aeabi_memcpy4 rutinlerini tanımlayın.
- newlib'de aeabi_memmove, aeabi_memset ve aeabi_memclr rutinlerini tanımlayın.
- Başparmak-1 kütüphane optimizasyonları.
- Ek kod boyutu optimizasyonları.
- gdb python yapısını ekleyin (arm-none-eabi-gdb-py).
- Özellik bölümü olmayan nesne dosyası başkalarıyla ilişkilendirilebilir.
- -mapcs, -mapcs-frame, -mtpcs-frame ve -mtpcs-leaf-frame seçenekleri gcc 5.0'da kullanımdan kaldırılacaktır. Bu nedenle, bunlardan kaçınmanızı öneririz.
- 4.9 sürüm 2 sürümünde giderilen önemli hatalar:
- Eski hedeflerle çalışmak için Newlib'de bazı satır içi montaj kodlarını güncelledi https://www.sourceware.org/ml/newlib/2015/msg00386.html
- Bölüm boyutu tanıtımının neden olduğu israftan kaçınmak https://answers.launchpad.net/gcc-arm-embedded/+question/262160
- Yerel kayıt değişkenleri satır içi işlenenlerle düzgün çalışmıyor https://bugs.launchpad.net/gcc-arm-embedded/+bug/1411655
- Özellikler:
- Tüm GCC 4.9 özellikleri ve en son ana hat özellikleri
- - Cortex-M7 desteği
- - Seçeneklerle küçük çarpma desteği:
- . -mcpu = korteks-m1.small-çarpma
- . -mcpu = korteks-m0.small-çarpma
- . -mcpu = korteks-m0plus.small-çarpma
- Cortex-M7 için özel 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
- newlib'de aeabi_memcpy ve aeabi_memcpy4 rutinlerini tanımlayın.
- newlib'de aeabi_memmove, aeabi_memset ve aeabi_memclr rutinlerini tanımlayın.
- Başparmak-1 kütüphane optimizasyonları.
- Ek kod boyutu optimizasyonları.
- gdb python yapısını ekleyin (arm-none-eabi-gdb-py).
- Özellik bölümü olmayan nesne dosyası başkalarıyla ilişkilendirilebilir.
- -mapcs, -mapcs-frame, -mtpcs-frame ve -mtpcs-leaf-frame seçenekleri gcc 5.0'da kullanımdan kaldırılacaktır. Bu nedenle, bunlardan kaçınmanızı öneririz.
- 4.9 sürüm 1 sürümünde giderilen önemli hatalar:
- Sıfır uzunluk bölümünü son axf dosyasında tutmak için LD backport
- Gruplandırılmış hata ayıklama bölümlerini atmaktan kaynaklanan GDB çökmesini onar
- Bilgisayarı düşük sicile geçiren yönergeyi yasallaştırmak için bir Thumb1 insn pattern ekleyin
- En son EABI dokümanı başına Tag_ABI_HardFP_use oluşturmak için GCC'yi güncelle
- Live high register işlevinde kaydedilmemiş -Os ile prolog
- - Yuvalanmış yapılarda var-bilgi-yolu-ifadesi başarısız oluyor
- Linker komut dosyasında http: // sourceware'de tanımlanan sembol .org / bugzilla / show_bug.cgi? id = 15302
- GDB, daha iyi cüce-3 ve daha sonraki standartları desteklemek için 7.6'ya yükseltildi. https://answers.launchpad.net/gcc-arm-embedded/+question/234131 https://bugs.launchpad.net/gcc-arm Gömülü / + böcek / 1248981
- ICE, başparmak-1 hedefi için PIC temel kayıt olarak yüksek kayıt kullanırken
- LTO https ile sabit nokta uygulaması derlerken kilitlenme : //answers.launchpad.net/gcc-arm-embedded/+question/235582
- Linker komut dosyası sembolü ile belirtilen hedefe olan şube https://sourceware.org/bugzilla/show_bug.cgi?id=15302
- Windows, gdb’nin bazı kesme noktalarında askıya alındı https://bugs.launchpad.net/gcc-arm-embedded/+bug/1197615
- Nano, _mallopt_r https://mbed.org/forum/mbed/topic/2701/?page=3#comment-22549 adresine yapılan referansı eksik
- En son texinfo paketine doc / *. answers.launchpad.net/gcc-arm-embedded/+question/227685
- ICE'yi -mtune seçeneği ile düzeltme https://answers.launchpad.net/gcc-arm-embedded/+question/227667
- Yapılandırma komut dosyasında Fix --debug seçeneği https://answers.launchpad.net/gcc-arm-embedded/+question/229127
- Thumb1 yaprak fonksiyonunda gereksiz lr tasarrufunu düzeltin
- Bu güncelleme sürümü, bir dizi sorunu giderir. 4.7 ana:
- Mac OS ana bilgisayar sürümünde python bağımlılığı var
- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293 adresinde yer alan dizinde dizine yüklendiğinde LTO hatası
- Hizalanmış verileri içeren veri bölümlerinin adres listesi http://sourceware.org/bugzilla/show_bug.cgi?id=15222
- libnosys yığın taşmasını denetlemiyor https://answers.launchpad.net/gcc-arm-embedded/+question/218972
- librdimon.a, newlib-nano ile eşleşmiyor
- Ayrıca, etkinleştirilecek yapılandırma yapılandırmasını da alır:
- Temel Cortex-A profili multilib
- LTO (Bağlantı Zaman Optimizasyonu)
Sürüm 4.9'da yeni olan Güncelleme 2:
Yeni sürüm nedir? Sürüm 4.9 Güncelleme 1:
Sürüm 4.9'da yeni :
Sürüm 4.7'deki yeni : Güncelleme 3:
Yeni olan nedir? sürüm 4.7 Güncelleme 2:
Yeni sürüm nedir? , sürüm 4.7 Güncelleme 1'de:
Yorum Bulunamadı