GCC ARM Embedded
Arm and GNU project contributors · Conjunto de ferramentas cruzadas GNU da Arm para firmware bare-metal C/C++, com compilador arm-none-eabi, utilitários binários, bibliotecas e depurador.
Descrição
GCC ARM Embedded é o nome do catálogo para o conjunto de ferramentas cruzadas GNU pré-compilado da Arm destinado ao desenvolvimento bare-metal para Arm de 32 bits. As ferramentas arm-none-eabi selecionadas são executadas no Mac host e geram código para destinos Arm compatíveis; o processador host e a arquitetura de destino do firmware são escolhas distintas. É um compilador/conjunto de ferramentas de linha de comando, não um IDE gráfico, emulador de placa ou aplicativo completo para gravação de firmware.
Recursos e público-alvo
- Compile firmware C e C++ com GCC e o alvo arm-none-eabi.
- Monte e vincule código com GNU Binutils.
- Inspecione símbolos, desmonte objetos e converta formatos binários.
- Depure com GDB quando houver um destino adequado e uma configuração de servidor de depuração disponível.
- Use as bibliotecas de runtime bare-metal fornecidas, Newlib e exemplos documentados.
- Selecione opções de processador, conjunto de instruções e ABI de ponto flutuante para sua placa.
Destina-se a desenvolvedores de sistemas embarcados, sistemas de compilação de firmware e educadores que trabalham com destinos bare-metal Cortex-M, Cortex-R ou outros destinos AArch32 compatíveis. A versão mais ampla do Arm GNU Toolchain também contém outras variantes de destino; este cask seleciona especificamente arm-none-eabi. Ele não instala as variantes AArch64 nem as destinadas a Linux, e não transforma um Mac em um host Arm Linux.
Instalação e suporte no Mac
Instale com brew install --cask gcc-arm-embedded ou use o instalador oficial correspondente para macOS. O pacote 15.3.rel1 padrão do catálogo é darwin-arm64: ferramentas nativas para hosts Apple Silicon que têm como destino o bare-metal AArch32. As notas de versão oficiais exigem macOS 11 ou posterior. Não é um pacote exclusivo para Intel e não requer Rosetta apenas porque o código de destino é Arm.
As variantes para Mac Intel no cask atual permanecem na versão 14.2.rel1, com ferramentas darwin-x86_64; essa versão documenta macOS 12 ou posterior. O suporte a hosts Intel com macOS foi descontinuado na versão 14.2 e está ausente da tabela de suporte a hosts 15.3. Não presuma que Intel receberá a versão padrão mais recente nem que o Rosetta fará um pacote para host arm64 funcionar em um Mac Intel. As versões históricas e seus requisitos devem ser verificados individualmente.
O cask é instalado em /Applications/ArmGNUToolchain/<version>/arm-none-eabi e cria links para as ferramentas com prefixo no diretório bin do Homebrew. A instalação direta pode exigir a inclusão do diretório bin apropriado em PATH; usar caminhos explícitos para as ferramentas deixa mais clara a seleção da compilação. Outros SDKs ou conjuntos de ferramentas podem fornecer programas arm-none-eabi com os mesmos nomes. Confira a ordem de PATH e fixe o compilador pretendido no projeto, em vez de presumir que o executável encontrado primeiro tem a versão ou ABI esperada.
Dependências e funcionamento
Escolha os sinalizadores do compilador e os scripts do vinculador conforme o MCU real, o mapa de memória da placa, a ABI de ponto flutuante e os requisitos de runtime. SDKs de placa, código de inicialização, utilitários de compilação e um editor/IDE são dependências separadas do projeto. Não é necessário conectar uma placa para compilar firmware, mas a programação ou depuração em hardware normalmente requer hardware compatível, uma sonda e configuração separada de software/servidor de depuração. O GDB, por si só, não fornece todos os drivers de sonda nem os utilitários de gravação flash. O cask não lista dependências extras de formula nem cask conflitantes explícitos.
A partir de 15.2, os pacotes para macOS incluem o GDB comum e um GDB separado com sufixo -py, que oferece suporte a scripts Python e foi compilado com Python 3.9.7. Siga os requisitos de configuração do Python da versão somente ao usar esse depurador com suporte a scripts; a compilação comum não implica uma exigência geral de Python. O GDB para macOS da versão 14.2 anterior não oferece suporte a scripts Python. Dependências descritas para Linux ou Windows não são automaticamente requisitos para Mac.
A instalação de um pacote do sistema pode exigir autorização de administrador. Fora isso, o conjunto de ferramentas usa acesso ao sistema de arquivos pela linha de comando para arquivos-fonte e resultados da compilação; a documentação não indica que a compilação comum exija permissões de Acessibilidade ou Gravação de Tela. A Arm alerta que compilar código-fonte não confiável pode causar execução arbitrária de código ou consumo excessivo de recursos e recomenda um ambiente isolado. Arquivos-fonte e scripts de compilação devem ser tratados como entradas executáveis do projeto, não como documentos inerentemente seguros.
Custo, licença e histórico do produto
O Arm GNU Toolchain é gratuito para baixar e usar; não é necessária licença paga do compilador nem conta online para compilar localmente. IDEs, serviços em nuvem, placas e sondas opcionais podem ter custos e licenças separados. Os componentes têm licenças distintas: GCC, Binutils e GDB incluem termos GPL, os arquivos de runtime do GCC aplicáveis estão sujeitos à GCC Runtime Library Exception, e Newlib e outras bibliotecas têm seus próprios avisos. Consulte a coleção de EULA/licenças fornecida para redistribuição, em vez de atribuir uma única licença a todos os componentes ou programas gerados.
A Arm unificou as antigas linhas de versões A-profile e GNU Arm Embedded no Arm GNU Toolchain. A antiga página de downloads está obsoleta e as versões mais recentes são hospedadas oficialmente no Arm GitLab; isso não significa que o cask atual tenha sido desativado ou esteja obsoleto. O cask atual não está desativado nem obsoleto. O Arm Toolchain for Embedded, baseado em LLVM, é um produto diferente, não um rótulo de versão intercambiável para este pacote GNU.
O pacote 15.3.rel1 padrão para Apple Silicon tem 280,574,793 bytes, de acordo com os metadados HTTP HEAD oficiais. Os arquivos instalados e outras compilações para hosts têm tamanhos diferentes. As notas de versão incluem limitações conhecidas, entre elas aninhamento de intrínsecos MVE, clonagem/vinculação CMSE e depuração com seções descartadas; consulte-as ao usar os recursos correspondentes.
Fontes: Projeto oficial, notas de versão 15.3, notas de versão 14.2, Guia oficial de instalação, Licenças dos componentes.
Novidades Novidades da versão 15.3.rel2 Do histórico de commits do Homebrew
Esta versão não tem notas de atualização específicas.