Como corrigir o tipo de CPU ruim em erro de compilação executável no Arduino IDE 2.0

Como corrigir o tipo de CPU ruim em erro de compilação executável no Arduino IDE 2.0

Arduino é uma plataforma baseada em microcontrolador que tem vários usos em diferentes campos da vida. Enquanto trabalhamos com Arduino, podemos encontrar diferentes tipos de erro e um deles é um “Tipo de CPU ruim em executável” erro ao tentar compilar código no Arduino IDE 2.0, esse erro geralmente vem nos mais recentes chips do M1 Mac da Apple.

Neste artigo, o guiaremos através do processo de corrigindo o erro de compilação “Bad Type in executável” no Arduino IDE 2.0.

Este artigo do artigo inclui:

Compreendendo o erro de compilação “Tipo de CPU ruim em executável”

Solução para o erro de compilação “Bad Cpu Type in executável”

    • Instale o Rosetta 2 nos mais recentes chips MacOS M1
    • Download do Arduino IDE correto para o seu Mac
    • Excluindo a pasta CTAGS

Algumas outras etapas importantes

Compreendendo o erro de compilação “Tipo de CPU ruim em executável”

O erro “Bad CPU Type in Executable” que alguns usuários relataram ao tentar usar o Arduino IDE nos chips Apple M1. É porque o Arduino IDE ainda não está compilado nativamente para a arquitetura M1.

O Arduino IDE é um aplicativo compilado para ser executado em um Mac baseado em Intel, que possui uma arquitetura diferente da CPU dos chips M1. Quando o aplicativo é lançado em um M1 Mac, o sistema reconhece que o aplicativo não é compilado nativamente para a arquitetura M1 e tenta executá -lo Rosetta, que é uma tecnologia que permite que aplicativos baseados em Intel sejam executados no M1 Macs. No entanto, em alguns casos, esse processo falha e resulta no “Tipo de CPU ruim em executável” mensagem de erro.

O problema não está no próprio Arduino IDE. É que a cadeia de ferramentas do MacOS para o Arduino Board não foi compilada para arquitetura de 64 bits. Apple descartou o suporte para aplicações de 32 bits na versão do MacOS Catalina.


Muitas das cadeias de ferramentas do MacOS usadas pelas plataformas de placas Arduino foram atualizadas oficialmente pelo Arduino para 64 bits em resposta a isso, mas algumas cadeias de ferramentas ou plataformas de placas que não são mantidas ativamente foram deixadas para trás por essa mudança. Se você estiver usando uma placa de microcontrolador de terceiros, entre em contato com eles sobre o suporte para a nova arquitetura Mac.

Atualizar: O chip M1 foi lançado em 2020, na época em que o Arduino IDE não tinha apoio para a nova arquitetura do ARM. No entanto, em dezembro de 2022, o Arduino IDE lançou oficialmente a versão IDE separada para Apple Silicon Mac e Mac baseado em Intel.

Vamos ver possíveis soluções para este problema.

Solução para o erro de compilação “Bad Cpu Type in executável”

Para corrigir esse erro, você pode tentar atualizar o Arduino IDE para a versão mais recente ou reinstalar o software, o que pode ajudar em alguns casos. Caso essas soluções não funcionem, execute o Arduino IDE através Rosetta, que pode resolver o problema.

Instale o Rosetta 2 nos mais recentes chips MacOS M1

Máquinas baseadas em silício da Apple (M1, M2 CPUs) podem executar o software projetado para hosts x86 por causa do suporte do Rosetta 2. Rosetta é necessária para executar o Arduino IDE em MacOS Apple M1 Chips porque o Arduino IDE não é compilado nativamente para a arquitetura M1. Rosetta é uma tecnologia que permite que aplicativos compilados para Macs baseados em Intel sejam executados nos processadores M1 da Apple.

Por padrão, Rosetta está instalado no mais recente Mac; No entanto, se não, siga estas etapas para instalá -las.

Passo 1: Abra a pasta de aplicativos.

Passo 2: Abra a pasta Utilities.

Etapa 3: Clique duas vezes em "Terminal".

Passo 4: Executar o comando dado:

SoftwareUpdate-Install-Rosetta


Etapa 5: Aceite os termos de instalação e contrato de licença.

Etapa 6: Agora espere até o acabamento da instalação do Rosetta.

Para mais detalhes sobre Rosetta 2, siga este link Como instalar o Rosetta no Mac.

Download do Arduino IDE correto para o seu Mac

Os dispositivos Apple projetados pela própria Apple ou em resumo, os dispositivos Apple Silicon Builds têm maior eficiência e desempenho, o Arduino lançado oficialmente o IDE 2.x Construir para dispositivos de silício Apple em dezembro de 2022. Devido a essa mudança, a maioria dos dispositivos Apple não pede a instalação do Rosetta 2 para x86 Build of Arduino IDE 2.x. O Rosetta 2 não é exigido pelo Arduino IDE. O IDE usa várias ferramentas diferentes para compilar programas. A maioria dessas ferramentas está ausente no produto Apple Build Chips:

    • descoberta em série
    • monitor em série
    • GCC
    • Avrdude

Sempre que um usuário compila um programa em novos chips de maçã, as ferramentas acima causam o erro de CPU ruim.

A razão para precisar de Ides Arduino separada para Mac Intel e Mac Silicon é porque esses dois tipos de Macs têm diferentes arquiteturas de CPU. As máquinas Mac Intel usam processadores Intel, enquanto as máquinas de silício Mac usam os próprios processadores M1 da Apple.

Isso significa que o código binário que compõe o Arduino IDE é diferente para processadores Intel e M1.

Se você tentar executar a versão do Arduino IDE compilado para processadores Intel em um M1 Mac ou vice -versa, isso resultará em erro e o IDE pode não funcionar corretamente.

A imagem a seguir mostra o Arduino IDE para sistemas Mac baseados em Intel e Silicone.

Excluindo a pasta CTAGS

O ctags é um arquivo que resume a localização de diferentes objetos em arquivos de origem C.

A exclusão do arquivo CTAGS resolverá esse problema temporariamente, mas uma vez que o Arduino IDE compilasse o arquivo, esse arquivo será novamente recebido, saindo novamente neste erro.

O endereço para este arquivo é como:

Usuários/MacBookPro/Library/Arduino15/Packages/Builtin/Tools/CTAGs/5.8-Aduino11


Algumas outras etapas importantes

Aqui estão algumas coisas mais importantes que você pode tentar se o erro persistir.

Passo 1: Atualize pacotes Arduino AVR

Uma das etapas mais importantes é garantir que os pacotes de placa AVR corretos e atualizados sejam instalados. Para instalar os últimos pacotes AVR Arduino, vá para Ferramentas> Board> Boards Manager e pesquise a placa AVR e clique em Instalar:


Passo 2: Atualize o firmware da placa

Se a sua placa tiver um firmware desatualizado, você poderá encontrar o erro de compilação "Tipo de CPU ruim em executável". Para atualizar o firmware em sua placa, você precisará baixar o firmware do site do fabricante e seguir suas instruções para atualizar o firmware.

Etapa 3: Use o programador certo

Se você estiver usando um programador para fazer upload do seu programa para o seu quadro, verifique se você selecionou o programador certo do Ferramentas> Menu do programador No Arduino IDE 2.0:


Passo 4: Use a porta certa

Verifique se você selecionou a porta certa do Ferramentas> Menu da porta No Arduino IDE 2.0. Se você não tem certeza.

Conclusão

Corrigindo o erro de compilação “Bad Type no executável” no Arduino IDE 2.0 requer garantir que a placa e o processador corretos sejam selecionados no menu “Ferramentas”. Além disso, esse erro geralmente vem nas CPUs Apple M1 Chip. Para resolver isso no Mac Rosetta 2, deve ser instalado em seu sistema junto com a versão correta do Arduino IDE. Arduino lançou um IDE separado para o Apple Silicon e Intel Mac Chips.