Pagina 1 di 1

[STM32] Avviare una sessione arm-debugger senza controllore

MessaggioInviato: 3 set 2021, 12:20
da harpefalcata
Buongiorno a tutti,

Avrei una domanda un po strana. Da diverso tempo stò sviluppando firmware per un microcontrollore della famiglia STM32. In particolare STM32F031, che appartiene alla famiglia Cortex-M0, che corrisponde alle specifiche ARMv6.

Detto questo vorrei chiedere: dal momento che non ho sempre con me il controller ed il cavetto USB di connessione, ma uso spesso una sessione cloud sulla quale ho l'intero repository delle sorgenti, mi chiedevo: sarebbe possibile avviare una sessione di arm-debugger senza che il controller stesso sia fisicamente connesso al PC?

In pratica, il compilatore mi genera correttamente il file "elf" e vorrei avviare una sessione di debugger su questo file, simulando il controller con una connessione fittizia.

Se non sbaglio, molto tempo fa un utente di questa comunity: @xyz, aveva detto che questa cosa era possibile, ma non riesco piu a trovare il suo messaggio, chiedo quindi alla community se qualcuno è pratico, e sa dove indirizzarmi, sperando anche che lo stesso "xyz", possa leggere questo messaggio e magari indirizzarmi nella giusta direzione.

Comunque grazie mille a tutti.

Saluti

Re: [STM32] Avviare una sessione arm-debugger senza controll

MessaggioInviato: 3 set 2021, 19:33
da xyz
Hai sbagliato a mettere il tag al mio nome.

Se sei un utente Linux puoi tranquillamente via SSH (sicuro) o Telnet (non sicuro) collegarti a qualsiasi connessione via GDB da remoto e fare una sezione di debug se conosci i comandi di GDB.

Connessione alla board in locale con OpenOCD:

Codice: Seleziona tutto
openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg

Connessione remota anche se in questo caso è lo stesso PC con l'indirizzo localhost, la porta di default è 3333 ma può essere cambiata:

Codice: Seleziona tutto
$> arm-none-eabi-gdb -ex "target remote localhost:3333" firmware.elf


(gdb) load

I manuali di OpenOCD e GDB spiegano tutte le opzioni. Bisogna adattare i file di configurazione alla board e al ARM in uso.

Puoi usare anche un emulatore come QEmu per ARM ma devi emulare i vari device interni non sempre possibile.

Se sei un utente MS-Windows e non hai capito quello che ho scritto ti lascio al tuo destino O_/