Pagina 1 di 1

Ricompilare ARM toolchain su linux?

MessaggioInviato: 6 nov 2019, 18:32
da harpefalcata
Buonasera a tutti,

Mi trovo in questa condizione: sviluppo codice sorgente per micro-controllore STM32 in linguaggio ARM assembly.

Molto spesso però sviluppo anche lontano da casa, sul mio portatile, senza portarmi dietro la scheda elettronica con il micro-controllore perché è delicata e rischio di danneggiarla in maniera irreversibile.

Uso un laptop, che ha una distribuzione Linux Ubuntu 16.04 LTS, e sul quale utilizzo come toolchain la versione: gcc-arm-none-eabi-8-2018-q4-major scaricabile qui: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads .

Vorrei fare in modo che tale toolchain sia in grado di avviare il debugger GDB anche senza scheda elettronica connessa, usando come "target" di debuug il "sim", che è un modulo interno che può simulare il target anche quando questo non è connesso.

Purtroppo, avviando il debugger, ottengo come errore: arm-none-eabi-gdb: Undefined target command: “sim” .
Navigando su internet sono approdato a questa discussionbe su StackOverflow: https://stackoverflow.com/questions/49470659/arm-none-eabi-gdb-undefined-target-command-sim, dalla quale, nell'unica risposta si evince che dovrei ricompilare la toolchain con l'opzione "--enable-sim", ma non sono in grado di farlo.

Come posso procedere? Dove trovo i sorgenti per poterlo ricompilare?

Grazi per l'aiuto.

Re: Ricompilare ARM toolchain su linux?

MessaggioInviato: 6 nov 2019, 19:32
da xyz
I sorgenti sono qui, sono l'ultimo link (url è la stessa che hai indicato tu):

https://developer.arm.com/tools-and-sof ... /downloads

Si compilano seguendo le istruzioni, io uso quello ufficiale via multiarch, in questo modo non ho più un gdb per ogni architettura. Se non sei un utente esperto leggi bene le istruzioni, in generale compilare un toolchain non è una cosa per principianti.

Devi compilarlo in modo che non interferisca con la tua distribuzione Linux, devi installarlo in una directory separata (tipo /opt/arm-none-eabi-..../)

Io non ho nessun gdb (x86_64, multiarch) compilato con quella opzione, non mi è mai servita. Per simulare una CPU, se mi serve, uso un collegamento remoto verso Qemu. Ti ricordo che con gdb puoi fare un debug remoto verso una board vera (se fatto un setup corretto).