Come correggere il tipo di CPU cattivo nell'errore di compilazione eseguibile in Arduino IDE 2.0

Come correggere il tipo di CPU cattivo nell'errore di compilazione eseguibile in Arduino IDE 2.0

Arduino è una piattaforma basata su microcontrollori che ha più usi in diversi campi della vita. Mentre lavoriamo con Arduino possiamo incontrare diversi tipi di errore e uno di questi è un "Bad CPU Tipo in eseguibile" Errore durante il tentativo di compilare il codice nell'IDE Arduino 2.0, questo errore di solito arriva negli ultimi chip M1 Mac Apple.

In questo articolo, ti guideremo attraverso il processo di correzione dell'errore di compilazione "Bad CPU in eseguibile" nell'IDE 2.0.

Questo contenuto di questo articolo include:

Comprendere l'errore di compilazione "Bad CPU in eseguibile"

Soluzione a "Bad CPU Tipo in eseguibile" Errore di compilazione

    • Installa Rosetta 2 sugli ultimi chip MacOS M1
    • Scaricare l'IDE Arduino corretto per il tuo Mac
    • Eliminazione della cartella CTAGS

Alcuni altri passaggi importanti

Comprendere l'errore di compilazione "Bad CPU in eseguibile"

L'errore "Bad CPU in eseguibile" che alcuni utenti hanno segnalato quando hanno provato a utilizzare l'IDE Arduino su Apple M1 Chips. È dal momento che l'IDE Arduino non è ancora compilato in modo nativo per l'architettura M1.

Arduino IDE è un'applicazione compilata per essere eseguita su un Mac basato su Intel, che ha un'architettura CPU diversa rispetto ai chip M1. Quando l'applicazione viene lanciata su un Mac M1, il sistema riconosce che l'applicazione non viene compilata in modo nativo per l'architettura M1 e tenta di eseguirlo Rosetta, che è una tecnologia che consente alle applicazioni basate su Intel di funzionare su M1 Mac. Tuttavia, in alcuni casi, questo processo fallisce e provoca il "Bad CPU Tipo in eseguibile" messaggio di errore.

Il problema non è nell'IDE Arduino stesso. È che la toolchain MacOS per Arduino Board non è stata compilata per l'architettura a 64 bit. Apple ha abbandonato il supporto per applicazioni a 32 bit nella versione MacOS Catalina.


Molte delle toolchain MacOS utilizzate dalle piattaforme di Arduino Boards sono state aggiornate da Arduino ufficialmente a 64 bit in risposta a ciò, ma alcune piattaforme di toolchains o schede che non sono attivamente mantenute sono state lasciate indietro da questo cambiamento. Se si utilizza una scheda microcontrollore di terze parti, contattali in merito al supporto per il nuovo Mac Architecture.

Aggiornamento: Il chip M1 è stato lanciato nel 2020, allora Arduino IDE non aveva supporto per la nuova architettura ARM. Tuttavia, nel dicembre 2022 Arduino IDE ha lanciato ufficialmente la versione IDE separata sia per Apple Silicon Mac che per Mac basato su Intel.

Vediamo possibili soluzioni a questo problema.

Soluzione a "Bad CPU Tipo in eseguibile" Errore di compilazione

Per correggere questo errore, puoi provare ad aggiornare l'IDE Arduino all'ultima versione o reinstallare il software, che può aiutare in alcuni casi. Nel caso in cui queste soluzioni non funzionino, esegui l'IDE Arduino Rosetta, che può risolvere il problema.

Installa Rosetta 2 sugli ultimi chip MacOS M1

Le macchine a base di silicio Apple (M1, M2 CPU) possono eseguire il software progettato per gli host X86 a causa del supporto Rosetta 2. Rosetta è necessaria per eseguire l'IDE Arduino su patatine M1 M1 MacOS perché l'IDE ARDUINO non è compilato in modo nativo per l'architettura M1. Rosetta è una tecnologia che consente alle applicazioni compilate per i Mac basati su Intel di funzionare sui processori M1 di Apple.

Per impostazione predefinita, Rosetta è installata sull'ultimo Mac; Tuttavia, in caso contrario, segui questi passaggi per installarlo.

Passo 1: Apri cartella applicazioni.

Passo 2: Apri la cartella delle utility.

Passaggio 3: Fare doppio clic su "Terminal".

Passaggio 4: Esegui comando dato:

SoftwareUpdate-Install-Rosetta


Passaggio 5: Accetta i termini di installazione e l'accordo di licenza.

Passaggio 6: Ora aspetta che l'installazione di Rosetta finisca.

Per maggiori dettagli su Rosetta 2, segui questo link come installare Rosetta su Mac.

Scaricare l'IDE Arduino corretto per il tuo Mac

I dispositivi Apple progettati da Apple stesso o in breve, i dispositivi di costruzione di silicio Apple hanno una maggiore efficienza e prestazioni, l'IDE 2 ha rilasciato ufficialmente Arduino.X Build per dispositivi al silicio Apple nel dicembre 2022. A causa di questo cambiamento, la maggior parte dei dispositivi Apple non chiede l'installazione di Rosetta 2 per la build x86 di Arduino IDE 2.X. La Rosetta 2 non è richiesta da Arduino IDE. L'IDE utilizza una serie di strumenti diversi per la compilazione di programmi. La maggior parte di questi strumenti mancano nel prodotto Apple Build Chips:

    • Scopro seriale
    • monitor seriale
    • GCC
    • Avrdude

Ogni volta che un utente compila un programma in nuovi chip Apple, gli strumenti di cui sopra causano il cattivo errore della CPU.

Il motivo per cui ha bisogno di IDE Arduino separati per Mac Intel e MAC Silicon è perché questi due tipi di Mac hanno architetture CPU diverse. Le macchine Intel Mac utilizzano processori Intel, mentre le macchine al silicio MAC utilizzano i processori M1 di Apple.

Ciò significa che il codice binario che costituisce l'IDE Arduino è diverso per i processori Intel e M1.

Se si tenta di eseguire la versione dell'IDE Arduino compilato per i processori Intel su un Mac M1 o viceversa, ciò comporterà un errore e l'IDE potrebbe non funzionare correttamente.

La seguente immagine mostra l'IDE Arduino per i sistemi Mac basati su Intel e in silicio.

Eliminazione della cartella CTAGS

IL CTAGS è un file che riassume la posizione di diversi oggetti nei file di origine C.

L'eliminazione del file CTAGS risolverà temporaneamente questo problema, ma una volta che l'IDE Arduino ha compilato il file, questo file verrà nuovamente salutato.

L'indirizzo per questo file è come:

Utenti/MacBookPro/Library/Arduino15/Packages/Builtin/Tools/CTAGS/5.8-ADUINO11


Alcuni altri passaggi importanti

Ecco alcune cose più importanti che puoi provare se l'errore persiste.

Passo 1: Aggiorna i pacchetti Arduino AVR

Uno dei passaggi più importanti è assicurarsi che siano installati pacchetti di scheda AVR corretti e aggiornati. Per installare gli ultimi pacchetti AVR Arduino, vai a Strumenti> Scheda> Manager delle schede e cerca la scheda AVR, quindi fai clic su Installa:


Passo 2: Aggiorna il firmware della scheda

Se la tua scheda ha un firmware obsoleto, potresti riscontrare l'errore di compilazione "Bad CPU in eseguibile". Per aggiornare il firmware sulla scheda, dovrai scaricare il firmware dal sito Web del produttore e seguire le loro istruzioni per l'aggiornamento del firmware.

Passaggio 3: Usa il programmatore giusto

Se si utilizza un programmatore per caricare il programma sulla scheda, assicurati di aver selezionato il programmatore giusto dal Strumenti> menu del programmatore nell'Arduino IDE 2.0:


Passaggio 4: Usa la porta giusta

Assicurati di aver selezionato la porta giusta da Strumenti> menu della porta nell'Arduino IDE 2.0. Se non sei sicuro.

Conclusione

Correzione dell'errore di compilazione "tipo CPU cattivo in eseguibile" in Arduino IDE 2.0 richiede garantire che la scheda e il processore corretti siano selezionati nel menu "Strumenti". Inoltre, questo errore di solito arriva su CPU di chip Apple M1. Per risolverlo su Mac Rosetta 2 deve essere installato nel sistema insieme alla versione corretta di Arduino IDE. Arduino ha rilasciato un IDE separato sia per il silicio Apple che per Intel Mac Chips.