O GCC ARM Embedded é um software de código aberto e distribuição livre que contém um conjunto de ferramentas GNU pré-construído para processadores ARM Cortex-R e Cortex-M. O projeto visa trazer as ferramentas GNU para processadores embarcados ARM, ajudando os desenvolvedores em várias tarefas de compilação.
Suporta todos os importantes processadores Cortex ARM
O software foi criado desde o início para suportar todos os importantes processadores Cortex ARM, incluindo o Cortex-R4, o Cortex-R5, o Cortex-R7, o Cortex-M3, o Cortex-M4, o Cortex-M7, o Cortex-M0 +, e Cortex-M0.
Sendo mantido pelos funcionários da ARM, o software GCC ARM Embedded é parte de um compromisso contínuo para melhorar e manter o suporte ao GNU Compiler Collection (GCC) para a arquitetura ARM.
Primeiros passos com o GCC ARM Embedded
Para usar o software GCC ARM Embedded no seu computador GNU / Linux, você deve baixar o pacote binário, que contém todos os binários pré-compilados que você precisa para começar. Salve o arquivo em algum lugar no seu computador, preferencialmente no seu diretório Home, use um utilitário gerenciador de archive para extrair seu conteúdo.
Em seguida, abra um aplicativo Terminal e navegue até o local onde você extraiu o arquivo (por exemplo, cd / home / softoware / gcc-arm-none-eabi-4_9-2014q4). Todos os binários estão localizados no & lsquo; bin & rsquo; pasta.
Disponibilidade e plataformas de hardware suportadas
O GCC ARM Embedded é distribuído como arquivos binários e de código fonte, bem como um repositório PPA para as versões mais recentes do sistema operacional Ubuntu Linux, suportando arquiteturas de 32 e 64 bits. Observe que o software também é compatível com os sistemas operacionais Mac OS X e Microsoft Windows.
O que há de novo nesta versão:
- Regressão de desempenho powf / expf / exp2f / logf / log2f corrigida
- Adicionado suporte para Arm Cortex-M33 sem DSP via -mcpu = cortex-m33 + nodsp
- Adicionado mapeamentos multilib Armv8-R
- Corrigir requisitos de compilação para suporte ao tui do GDB
- Especificador de formato C99 IO ativado no newlib
- Corrigido o cmse_nonsecure_caller Extensão de segurança Armv8-M intrínseca
- Corrigir falha em __builtin_arm_set_fpscr GCC embutido
- O bug LTO https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966 foi corrigido na versão anterior. Nota de lançamento atualizada para refletir a alteração.
- Corrigido o problema de criar o cmse.c da libgcc sem cabeçalhos
- Corrigido problema com arm_cmse.h Compatibilidade C99
O que há de novo na versão 7-2017-q4:
- Suporte ao Armv8-R e Cortex-R52 .
- Correção para https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69866
- GDB criado com o C ++ ativado para o Mac OS X
O que há de novo na versão 6.2:
- Recursos:
- Todos os recursos do GCC 6, além dos recursos principais mais recentes:
- Suporte completo ao ARMv8-M, incluindo atomics e extensões de segurança
- Suporte ao ARM PURECODE para linha de base e linha de base do ARMv7-M e ARMv8-M
- Suporte intrínseco de coprocessador
- Suporte ao Cortex-M23 e ao Cortex-M33
- -mlt opcional para dispositivos Cortex-M
- Suporte para retargeting de rotinas de bloqueio no newlib
- Implementação avançada de memchr otimizada para SIMD em newlib
- Ativar opções de configuração para o instalador do Windows na linha de comando
- Alterações importantes na versão 6 update 2:
- O GCC considera incorretamente que o Cortex-r [578] possui LDRD atômico de 64 bits com cópia única https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80082
- Pseudo-op de LDR gera MOVS https://bugs.launchpad.net/gcc-arm-embedded/+bug/1682620
- Fixo e setter fixos do FPSCR
- Bibliotecas de importação do SG que foram criadas como executáveis agora corrigidas para relocáveis
- Ativar opções de configuração para o instalador do Windows na linha de comando
- Suporte ao PURECODE ativado para ARMv8-M.Baseline
- Implementação avançada de memchr otimizada para SIMD em newlib
O que há de novo na versão 5.4:
- Novos recursos:
- Suporte a linha de base ARMv8-M e beta principal:
- Suporte de base atômica ARMv8-M
- Suporte ao PureCode da ARM
- Thumb-2 folheados de galhos longos
- Bugs importantes corrigidos no release 5 update 3:
- Removidos registros especiais MSP_S e PSP_S MRS / MSR
- Detecção de versão de Thumbs Fixed na geração de folheado
- Documentação fixa sobre o newlib-nano no release.txt
O que há de novo na versão 5.3:
- Recursos:
- Todos os recursos do GCC 5, além dos recursos principais mais recentes:
- suporte ao Cortex-R8
- Ajuste de desempenho do Cortex-M7
- otimização de cargas manuais little endian e big endian
- encadeamento de salto aprimorado, removendo a necessidade de -ftree-switch-shortcut
- Suporte alpha da linha de base e Mainline do ARMv8-M:
- atomics não incluídos na linha de base do ARMv8-M
- Suporte Alpha de Extensões de Segurança ARMv8-M
- Otimizações de biblioteca do Thumb-1:
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- Otimização de CRC:
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
- Manipulador de finalização menor para o newlib-nano
O que há de novo na versão 5.2:
- Todos os recursos do GCC 5, além dos recursos principais mais recentes:
- Ajuste de desempenho do Cortex-M7
- otimização de cargas manuais little endian e big endian
- encadeamento de salto aprimorado, removendo a necessidade de -ftree-switch-shortcut
- Suporte alpha da linha de base e Mainline do ARMv8-M:
- atomics não incluídos na linha de base do ARMv8-M
- Extensões de segurança ARMv8-M suportadas apenas para montagem e vinculação básica
- Otimizações de biblioteca do Thumb-1
- https://gcc.gnu.org/ml/gcc-patches/2015-10/msg01282.html
- Otimização de CRC
- https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02046.html
O que há de novo na versão 4.9 Atualização 3:
- Recursos:
- Todos os recursos do GCC 4.9, além dos recursos principais mais recentes
- suporte ao Cortex-M7
- Suporte para multiplicação pequena com opções:
- -mcpu = córtex-m1.small-multiplicar
- -mcpu = córtex-m0.small-multiplicar
- -mcpu = cortex-m0plus.small-multiplicate
- Multibib dedicado para o Cortex-M7
- - córtex-m7
- - córtex-m7 / fpu / fpv5-d16
- - córtex-m7 / fpu / fpv5-sp-d16
- - córtex-m7 / softfp / fpv5-d16
- - córtex-m7 / softfp / fpv5-sp-d16
- Defina as rotinas aeabi_memcpy e aeabi_memcpy4 no newlib.
- Defina as rotinas aeabi_memmove, aeabi_memset e aeabi_memclr no newlib.
- Otimizações de biblioteca do Thumb-1.
- Otimizações de tamanho de código adicionais.
- Adicione o gdb python build (arm-nenhum-eabi-gdb-py).
- O arquivo de objeto sem a seção de atributos pode ser vinculado a outros.
- As opções -mapcs, -mapcs-frame, -mtpcs-frame e -mtpcs-leaf-frame serão descontinuadas no gcc 5.0, portanto, recomendamos evitá-las.
- Bugs importantes corrigidos na versão 4.9 update 3:
- Correção de incompatibilidade do especificador de formato Newlib. https://answers.launchpad.net/gcc-arm-embedded/+question/269083
- Correção de incompatibilidade de macro Newlib. https://answers.launchpad.net/gcc-arm-embedded/+question/269177
- Correção de bug de codificação Assembler. https://sourceware.org/ml/binutils/2015-08/msg00028.html
O que há de novo na versão 4.9 Atualização 2:
- Recursos:
- Todos os recursos do GCC 4.9, além dos recursos principais mais recentes
- suporte ao Cortex-M7
- Suporte para multiplicação pequena com opções:
- -mcpu = córtex-m1.small-multiplicar
- -mcpu = córtex-m0.small-multiplicar
- -mcpu = cortex-m0plus.small-multiplicar
- Multibib dedicado para o Cortex-M7:
- córtex-m7
- córtex-m7 / fpu / fpv5-d16
- córtex-m7 / fpu / fpv5-sp-d16
- cortex-m7 / softfp / fpv5-d16
- córtex-m7 / softfp / fpv5-sp-d16
- Defina as rotinas aeabi_memcpy e aeabi_memcpy4 no newlib.
- Defina as rotinas aeabi_memmove, aeabi_memset e aeabi_memclr no newlib.
- Otimizações de biblioteca do Thumb-1.
- Otimizações de tamanho de código adicionais.
- Adicione o gdb python build (arm-nenhum-eabi-gdb-py).
- O arquivo de objeto sem a seção de atributos pode ser vinculado a outros.
- As opções -mapcs, -mapcs-frame, -mtpcs-frame e -mtpcs-leaf-frame serão descontinuadas no gcc 5.0, portanto, recomendamos evitá-las.
- Bugs importantes corrigidos na versão 4.9 update 2:
- Atualizamos alguns códigos de montagem inline no Newlib para trabalhar com destinos antigos https://www.sourceware.org/ml/newlib/2015/msg00386.html
- Evite o desperdício causado pela promoção do tamanho da seção https://answers.launchpad.net/gcc-arm-embedded/+question/262160
- Variáveis de registro locais não funcionam corretamente com operandos em linha asm https://bugs.launchpad.net/gcc-arm-embedded/+bug/1411655
O que há de novo na versão 4.9 Atualização 1:
- Recursos:
- Todos os recursos do GCC 4.9, além dos recursos principais mais recentes
- - Suporte ao Cortex-M7
- - Suporte para multiplicação pequena com opções:
- -mcpu = córtex-m1.small-multiplicar
- -mcpu = córtex-m0.small-multiplicar
- -mcpu = cortex-m0plus.small-multiplicate
- Multibib dedicado para o Cortex-M7
- - córtex-m7
- - córtex-m7 / fpu / fpv5-d16
- - córtex-m7 / fpu / fpv5-sp-d16
- - córtex-m7 / softfp / fpv5-d16
- - córtex-m7 / softfp / fpv5-sp-d16
- Defina as rotinas aeabi_memcpy e aeabi_memcpy4 no newlib.
- Defina as rotinas aeabi_memmove, aeabi_memset e aeabi_memclr no newlib.
- Otimizações de biblioteca do Thumb-1.
- Otimizações de tamanho de código adicionais.
- Adicione o gdb python build (arm-nenhum-eabi-gdb-py).
- O arquivo de objeto sem a seção de atributos pode ser vinculado a outros.
- As opções -mapcs, -mapcs-frame, -mtpcs-frame e -mtpcs-leaf-frame serão descontinuadas no gcc 5.0, portanto, recomendamos evitá-las.
- Bugs importantes corrigidos na versão 4.9 update 1:
- backport LD para manter a seção de comprimento zero no arquivo axf final
- Corrigir falha do GDB causada pelo descarte das seções de depuração agrupadas
- Adicione um padrão de Inser Thumb1 para legalizar a instrução que move o pc para o registro baixo
- Atualize o GCC para gerar o Tag_ABI_HardFP_use de acordo com o mais recente documento da EABI
- Registro alto ao vivo não salvo no prólogo de função com -Os
- - var-info-path-expression falha para estruturas aninhadas
O que há de novo na versão 4.9:
- Ramificação para símbolo definido no script de vinculação http: // sourceware .org / bugzilla / show_bug.cgi? id = 15302
- O GDB é atualizado para o 7.6 para melhor suporte do dwarf-3 e posterior padrão https://answers.launchpad.net/gcc-arm-embedded/+question/234131 https://bugs.launchpad.net/gcc-arm -embedded / + bug / 1248981
- ICE quando usar registro alto como registro base de PIC para destino de thumb-1
Novidades na versão 4.7 Atualização 3:
- Falha ao compilar aplicativo de ponto fixo com LTO https : //answers.launchpad.net/gcc-arm-embedded/+question/235582
- Ramificar para o destino especificado por um símbolo de script de vinculador https://sourceware.org/bugzilla/show_bug.cgi?id=15302
- O gdb hospedado pelo Windows fica em algum ponto de interrupção https://bugs.launchpad.net/gcc-arm-embedded/+bug/1197615
- Nano sem referência a _mallopt_r https://mbed.org/forum/mbed/topic/2701/?page=3#comment-22549
O que há de novo na versão 4.7 Atualização 2:
- Atualize doc / *. texi para o pacote texinfo mais recente https: // answers.launchpad.net/gcc-arm-embedded/+question/227685
- Corrigir ICE com a opção -mtune https://answers.launchpad.net/gcc-arm-embedded/+question/227667
- Correção da opção --debug no script de construção https://answers.launchpad.net/gcc-arm-embedded/+question/229127
- Corrigir lr desnecessário na função de folha thumb1
O que há de novo na versão 4.7 Atualização 1:
- Esta versão de atualização corrige alguns problemas encontrados em 4,7 maior:
- A versão do host do Mac OS tem dependência de python
- Falha LTO quando instalado no diretório com espaço no nome do caminho http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293
- Carregar endereço de seções de dados contendo dados alinhados http://sourceware.org/bugzilla/show_bug.cgi?id=15222
- o libnosys não verifica o estouro de pilha https://answers.launchpad.net/gcc-arm-embedded/+question/218972
- librdimon.a não corresponde a newlib-nano
- Também obtém a configuração de construção ajustada para ativar:
- Perfil básico do Cortex-A multilib
- LTO (otimização de tempo de link)
Comentários não encontrado