GCC ARM Embedded adalah perangkat lunak open source dan terdistribusi secara bebas yang berisi pra-bangun GNU toolchain untuk prosesor ARM Cortex-R dan Cortex-M. Proyek ini bertujuan untuk membawa GNU Tools ke ARM Embedded Processors, membantu pengembang dengan berbagai tugas kompilasi.
Mendukung semua prosesor Cortex ARM yang penting
Perangkat lunak ini dibuat dari nol untuk mendukung semua prosesor Cortex ARM yang penting, termasuk Cortex-R4, Cortex-R5, Cortex-R7, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M0 +, dan Cortex-M0.
Dipertahankan oleh karyawan ARM, perangkat lunak GCC ARM Embedded merupakan bagian dari komitmen berkelanjutan untuk meningkatkan dan mempertahankan dukungan GNU Compiler Collection (GCC) untuk arsitektur ARM.
Memulai dengan GCC ARM Embedded
Untuk menggunakan perangkat lunak GCC ARM Embedded pada komputer GNU / Linux Anda, Anda harus mengunduh paket binari, yang berisi semua binari yang sudah dibangun sebelumnya yang Anda butuhkan untuk memulai. Simpan arsip di suatu tempat di komputer Anda, sebaiknya direktori Beranda Anda, gunakan utilitas pengarsipan arsip untuk mengekstrak isinya.
Kemudian, buka aplikasi Terminal dan arahkan ke lokasi tempat Anda mengekstraksi file arsip (misalnya cd / home / softoware / gcc-arm-none-eabi-4_9-2014q4). Semua binari terletak di & lsquo; bin & rsquo; folder.
Ketersediaan dan platform perangkat keras yang didukung
GCC ARM Embedded didistribusikan sebagai arsip biner dan sumber, serta repositori PPA untuk rilis terbaru dari sistem operasi Linux Ubuntu, mendukung arsitektur 32 dan 64-bit. Harap dicatat bahwa perangkat lunak ini juga kompatibel dengan sistem operasi Mac OS X dan Microsoft Windows.
Apa yang baru dalam rilis ini:
- Fixed powf / expf / exp2f / logf / log2f regresi kinerja
- Penambahan dukungan untuk Arm Cortex-M33 tanpa DSP melalui -mcpu = cortex-m33 + nodsp
- Menambahkan multilib pemetaan Armv8
- Perbaiki persyaratan pembuatan untuk dukungan tui GDB
- Diaktifkan pengidentifikasi format C99 IO di newlib
- Memperbaiki cmse_nonsecure_caller Ekstensi Keamanan Armv8-M intrinsik
- Perbaiki kerusakan di __builtin_arm_set_fpscr GCC bawaan
- LTO bug https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966 telah diperbaiki pada rilis sebelumnya. Catatan rilis diperbarui untuk mencerminkan perubahan.
- Memperbaiki masalah dengan membuat libgcc's cmse.c tanpa header
- Memperbaiki masalah dengan kompatibilitas C99 arm_cmse.h
Apa yang baru di versi 7-2017-q4:
- Dukungan Armv8-R dan Cortex-R52 .
- Perbaiki untuk https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69866
- GDB dibangun dengan C ++ diaktifkan untuk Mac OS X
Apa yang baru di versi 6.2:
- Fitur:
- Semua fitur GCC 6, ditambah fitur utama terkini:
- Dukungan ARMv8-M lengkap termasuk atom dan Ekstensi Keamanan
- Dukungan ARM PURECODE untuk ARMv7-M dan ARMv8-M Baseline dan Mainline
- Dukungan intrinsik ko-prosesor
- Dukungan Cortex-M23 dan Cortex-M33
- -mend opsional untuk perangkat Cortex-M
- Dukungan untuk penargetan kembali OS dari rutinitas penguncian di newlib
- Implementasi memchr SIMD yang dioptimalkan di newlib
- Aktifkan opsi pengaturan untuk penginstal Windows pada baris perintah
- Perubahan penting dalam 6 pembaruan 2 rilis:
- GCC salah mengasumsikan Cortex-r [578] memiliki 64-bit single-copy atom LDRD https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80082
- LDR pseudo-op menghasilkan MOVS https://bugs.launchpad.net/gcc-arm-embedded/+bug/1682620
- Memperbaiki pengambil dan penyusun FPSCR dan setter
- Perpustakaan impor SG yang dibuat sebagai dapat dieksekusi sekarang diperbaiki menjadi dapat dipindahkan
- Aktifkan opsi pengaturan untuk penginstal Windows pada baris perintah
- Dukungan PURECODE diaktifkan untuk ARMv8-M.Baseline
- Implementasi memchr SIMD yang dioptimalkan di newlib
Apa yang baru di versi 5.4:
- Fitur Baru:
- Dukungan baseline dan Mainline beta ARMv8-M:
- Dukungan atom dasar ARMv8-M
- Dukungan ARM PureCode
- Veneer cabang panjang Thumb-2
- Bug penting yang diperbaiki dalam 5 pembaruan 3 rilis:
- Menghapus register khusus MSP_S dan PSP_S MRS / MSR
- Memperbaiki deteksi versi Thumb di generasi veneer
- Dokumentasi tetap tentang newlib-nano di release.txt
Apa yang baru di versi 5.3:
- Fitur:
- Semua fitur GCC 5, ditambah fitur utama terkini:
- Dukungan Cortex-R8
- Penyesuaian kinerja Cortex-M7
- optimalisasi pengguna endian kecil dan big endian load
- meningkatkan lompat threading yang menghapus kebutuhan untuk -tombol-tombol-pintasan
- Dukungan baseline dan Alpha Mainline ARMv8-M:
- tidak disertakan untuk ARMv8-M Baseline
- Dukungan Ekstensi ARMv8-M Alpha
- Pengoptimalan perpustakaan Thumb-1:
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- Pengoptimalan CRC:
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
- Pengendali penghentian yang lebih kecil untuk newlib-nano
Atom
Apa yang baru di versi 5.2:
- Semua fitur GCC 5, ditambah fitur utama terkini:
- Penyesuaian kinerja Cortex-M7
- optimalisasi pengguna endian kecil dan big endian load
- meningkatkan lompat threading yang menghapus kebutuhan untuk -tombol-tombol-pintasan
- Dukungan baseline dan Alpha Mainline ARMv8-M:
- tidak disertakan untuk ARMv8-M Baseline
- Ekstensi Keamanan ARMv8-M hanya didukung untuk merakit dan menautkan dasar
- Optimasi perpustakaan Thumb-1
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- Pengoptimalan CRC
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
Atom
Apa yang baru di versi 4.9 Pembaruan 3:
- Fitur:
- Semua fitur GCC 4.9, ditambah fitur utama terkini
- Dukungan Cortex-M7
- Dukungan kecil dengan opsi:
- . -mcpu = cortex-m1.small-gandakan
- . -mcpu = cortex-m0.small-gandakan
- . -mcpu = cortex-m0plus.small-multiply
- Multilib khusus untuk Cortex-M7
- - korteks-m7
- - korteks-m7 / fpu / fpv5-d16
- - korteks-m7 / fpu / fpv5-sp-d16
- - korteks-m7 / softfp / fpv5-d16
- - korteks-m7 / softfp / fpv5-sp-d16
- Menentukan rutinitas aeabi_memcpy dan aeabi_memcpy4 di newlib.
- Menentukan aeabi_memmove, aeabi_memset dan rutinitas aeabi_memclr di newlib.
- Pengoptimalan perpustakaan Thumb-1.
- Pengoptimalan ukuran kode tambahan.
- Tambahkan gdb python build (arm-none-eabi-gdb-py).
- File objek tanpa bagian atribut dapat ditautkan dengan yang lain.
- Opsi -mapcs, -mapcs-frame, -mtpcs-frame dan -mtpcs-leaf-frame tidak lagi digunakan di gcc 5.0, maka rekomendasikan untuk menghindarinya.
- Bug penting yang diperbaiki di rilis 4,9 pembaruan 3:
- Penyesuaian ketidakcocokan sporadis format baru. https://answers.launchpad.net/gcc-arm-embedded/+question/269083
- Perbaikan mismatch makro Newlib. https://answers.launchpad.net/gcc-arm-embedded/+question/269177
- Merakit pengkodean perbaikan bug. https://sourceware.org/ml/binutils/2015-08/msg00028.html
Apa yang baru di versi 4.9 Pembaruan 2:
- Fitur:
- Semua fitur GCC 4.9, ditambah fitur utama terkini
- Dukungan Cortex-M7
- Dukungan kecil dengan opsi:
- -mcpu = cortex-m1.small-gandakan
- -mcpu = cortex-m0.small-gandakan
- -mcpu = cortex-m0plus.small-gandakan
- Multilib khusus untuk Cortex-M7:
- korteks-m7
- korteks-m7 / fpu / fpv5-d16
- korteks-m7 / fpu / fpv5-sp-d16
- korteks-m7 / softfp / fpv5-d16
- korteks-m7 / softfp / fpv5-sp-d16
- Menentukan rutinitas aeabi_memcpy dan aeabi_memcpy4 di newlib.
- Menentukan aeabi_memmove, aeabi_memset dan rutinitas aeabi_memclr di newlib.
- Pengoptimalan perpustakaan Thumb-1.
- Pengoptimalan ukuran kode tambahan.
- Tambahkan gdb python build (arm-none-eabi-gdb-py).
- File objek tanpa bagian atribut dapat ditautkan dengan yang lain.
- Opsi -mapcs, -mapcs-frame, -mtpcs-frame dan -mtpcs-leaf-frame tidak lagi digunakan di gcc 5.0, maka rekomendasikan untuk menghindarinya.
- Bug penting yang diperbaiki dalam 4,9 pembaruan 2 rilis:
- Memperbarui beberapa kode assembly inline di Newlib untuk bekerja dengan target lama https://www.sourceware.org/ml/newlib/2015/msg00386.html
- Hindari pemborosan yang disebabkan oleh promosi ukuran bagian https://answers.launchpad.net/gcc-arm-embedded/+question/262160
- Variabel register lokal tidak berfungsi dengan baik dengan inline asm operand https://bugs.launchpad.net/gcc-arm-embedded/+bug/1411655
Apa yang baru di versi 4.9 Pembaruan 1:
- Fitur:
- Semua fitur GCC 4.9, ditambah fitur utama terkini
- - Dukungan Cortex-M7
- - Dukungan kecil dengan opsi:
- . -mcpu = cortex-m1.small-gandakan
- . -mcpu = cortex-m0.small-gandakan
- . -mcpu = cortex-m0plus.small-multiply
- Multilib khusus untuk Cortex-M7
- - korteks-m7
- - korteks-m7 / fpu / fpv5-d16
- - korteks-m7 / fpu / fpv5-sp-d16
- - korteks-m7 / softfp / fpv5-d16
- - korteks-m7 / softfp / fpv5-sp-d16
- Menentukan rutinitas aeabi_memcpy dan aeabi_memcpy4 di newlib.
- Menentukan aeabi_memmove, aeabi_memset dan rutinitas aeabi_memclr di newlib.
- Pengoptimalan perpustakaan Thumb-1.
- Pengoptimalan ukuran kode tambahan.
- Tambahkan gdb python build (arm-none-eabi-gdb-py).
- File objek tanpa bagian atribut dapat ditautkan dengan yang lain.
- Opsi -mapcs, -mapcs-frame, -mtpcs-frame dan -mtpcs-leaf-frame tidak lagi digunakan di gcc 5.0, maka rekomendasikan untuk menghindarinya.
- Bug penting yang diperbaiki di rilis 4,9 pembaruan 1:
- LD backport untuk menjaga bagian panjang nol dalam file axf akhir
- Perbaiki kerusakan GDB yang disebabkan oleh membuang bagian debug yang dikelompokkan
- Tambahkan pola bawaan Thumb1 untuk mengesahkan instruksi yang menggerakkan pc ke register rendah
- Perbarui GCC untuk menghasilkan Tag_ABI_HardFP_use per dokumen EABI terbaru
- Live high register tidak disimpan dalam fungsi prolog dengan -Os
- - var-info-path-expression gagal untuk nested structs
Apa yang baru di versi 4.9:
- Cabang ke simbol yang ditentukan dalam script tautaner http: // sourceware .org / bugzilla / show_bug.cgi? id = 15302
- GDB ditingkatkan menjadi 7,6 untuk mendukung dwarf-3 dan standar https://answers.launchpad.net/gcc-arm-embedded/+question/234131 https://bugs.launchpad.net/gcc-arm -embedded / + bug / 1248981
- ICE saat menggunakan register tinggi sebagai register basis PIC untuk target thumb-1
Apa yang baru di versi 4.7 Pembaruan 3:
- Crash saat mengkompilasi aplikasi fixed-point dengan https KPP : //answers.launchpad.net/gcc-arm-embedded/+question/235582
- Cabang untuk menargetkan yang ditentukan oleh simbol skrip tautan tautan https://sourceware.org/bugzilla/show_bug.cgi?id=15302
- Windows host gdb digantung di beberapa breakpoint https://bugs.launchpad.net/gcc-arm-embedded/+bug/1197615
- Referensi yang hilang dari Nano ke _mallopt_r https://mbed.org/forum/mbed/topic/2701/?page=3#comment-22549
Apa yang baru di versi 4.7 Pembaruan 2:
- Tingkatkan dokumen / *. texi ke paket texinfo terbaru https: // answers.launchpad.net/gcc-arm-embedded/+question/227685
- Perbaiki ICE dengan opsi -mtune https://answers.launchpad.net/gcc-arm-embedded/+question/227667
- Perbaiki opsi --debug di skrip build https://answers.launchpad.net/gcc-arm-embedded/+question/229127
- Perbaiki penyimpanan lr yang tidak diperlukan dalam fungsi daun thumb1
Apa yang baru di versi 4.7 Pembaruan 1:
- Pembaruan pembaruan ini memperbaiki beberapa masalah yang ditemukan di 4,7 utama:
- Versi host Mac OS memiliki ketergantungan python
- Kegagalan LTO saat dipasang di direktori dengan spasi di nama jalur http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293
- Memuat alamat bagian data yang berisi data yang selaras http://sourceware.org/bugzilla/show_bug.cgi?id=15222
- libnosys tidak memeriksa tumpukan overflow https://answers.launchpad.net/gcc-arm-embedded/+question/218972
- librdimon.a tidak cocok dengan newlib-nano
- Ini juga membuat konfigurasi build disesuaikan untuk mengaktifkan:
- Basic Cortex-A profil multilib
- LTO (Link Time Optimization)
Komentar tidak ditemukan