Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Debugger ARM, online?

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Debugger ARM, online?

Messaggioda Foto Utenteharpefalcata » 29 mag 2018, 15:09

Buonasera a tutti,

Sviluppo codici in ARM assembly per un cortex M4, in particolare un STM32F103RB.
Benchè la compilazione proceda regolarmente, a volte sviluppo sul mio portatile, senza potermi portare dietro la schedina di sviluppo, che rimane a casa, connessa con il bus usart, l'LCD e tutti gli altri dispositivi che sono già connessi alla scheda stessa.

Sono qui per chiedere se esiste, e si possa usare undebugger, disponendo di soli strumenti software, ovvero esiste un debugger per ARM che possa funzionare senza essere caricato sul microcontrollore reale?

L'ideale sarebbe di poter usare il GDB nativo, integrato nella stessa toolchain, ma non l'ho mai usato senza la scheda arm connessa, e quindi non so se può funzionare.

In particolare sono interessato a controllare che, in un'opportuna sezione del codice, alcuni registri del core assumano una costante numerica corretta, se esistesse anche qualche altra strada, per andrebbe benissimo lo stesso.

Spero di essere stato chiaro.

Un saluto.
Avatar utente
Foto Utenteharpefalcata
326 1 3 6
Stabilizzato
Stabilizzato
 
Messaggi: 422
Iscritto il: 28 lug 2015, 21:03

0
voti

[2] Re: Debugger ARM, online?

Messaggioda Foto Utentepusillus » 29 mag 2018, 18:27

Non no capito molto bene ma Provo a risponderti:
Penso che la cosa più semplice sia spendere 3 euro per un clone del st link e collegarlo ai pin SWD del micro e fare il debug. Tutto facile! Perché complicarsi la vita?
Avatar utente
Foto Utentepusillus
3.207 3 6 11
Master
Master
 
Messaggi: 1031
Iscritto il: 5 mar 2016, 15:19
Località: Latina

1
voti

[3] Re: Debugger ARM, online?

Messaggioda Foto Utentexyz » 29 mag 2018, 19:00

Puoi usare tranquillamente il GDB come debug per ARM da remoto, puoi avere la scheda in Australia e eseguire i comandi del GDB dall'Italia, ad esempio. Per farlo serve una connessione TCP/IP funzionante e stabile e 2 PC (va bene anche una Raspberry-PI).

Avevo già spiegato come fare in un precedente thread ma non riesco a trovalo, allego la documentazione ufficiale:

https://sourceware.org/gdb/current/onli ... -Debugging

funziona con tutte le architetture sopportate dalle binutils.
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[4] Re: Debugger ARM, online?

Messaggioda Foto Utenteharpefalcata » 30 mag 2018, 9:25

Il problema è questo: io lavoro alla Banca d'Italia e qui, per entrare non mi fanno portare alcuna scheda di sviluppo elettronica, quindi non posso portarmi dietro ne la mia stessa scheda, ne un'altra. Ma non hanno problemi a lasciarmi entrare con il mio laptop personale.

Sempre in ufficio, sono sotto proxy per la connessione ad internet e quindi, anche se posso usare il mio PC personale, dall'ufficio non lo posso connettere ad internet. Ho provato ad usare come connessione internet una internet key, con una SIM abilitata ma, sia perché ho poco campo, sia anche perché veicolare una connessione che richiede una certa banda e stabilità, su una rete GSM "traballante", mi risulta difficile tentare la strada della connessione ad un server.

Per questo motivo la mia domanda è: si può usare il debugger GDB incluso nella normale toolchain in maniera "standalone" e locale? Nel senso: senza connettere la scheda di sviluppo al computer? Oppure: esiste qualche sito online, dove posso caricare file binario già compilato (.elf, oppure .bin), e procedere ad una simulazione, o debug del comportamento del processore, in un ambiente completamente simulato?

Non ho bisogno di simulatori o debugger estremamente complessi, ma mi sarebbe utile conoscere la progressione dello stato di alcuni dei registri del core del controllore: in particolare i registri RCC.

Grazie mille a tutti.
Avatar utente
Foto Utenteharpefalcata
326 1 3 6
Stabilizzato
Stabilizzato
 
Messaggi: 422
Iscritto il: 28 lug 2015, 21:03

1
voti

[5] Re: Debugger ARM, online?

Messaggioda Foto Utentexyz » 30 mag 2018, 10:50

Il canale di comunicazione remota del GDB consuma pochissima banda, quindi anche in condizioni di scarsa banda riesce a funzionare. E' possibile configurare la comunicazione via Proxy, VPN, tunnel SSH, ecc.. questo dipende dalle proprie conoscenze personali di networking su come creare una comunicazione in condizione di apparente blocco totale.

GDB può funzionare in locale è la sua funzione di base, ma tu parli di assenza di scheda allora se manca la scheda quello che ti serve è un emulatore software della scheda, tutta un'altra cosa di un debug remoto, un debug se non ha qualcosa su cui fare il debug non ha senso di usarlo.

Come emulatore software degli STM32 esiste un porting di QEMU:

https://github.com/beckus/qemu_stm32

credo di averlo compilato una volta per fare dei test nulla di più (alla fine non mi serviva). GDB può tranquillamente interfacciarsi a QEMU per eseguire il debug di un eventuale programma caricato nell'emulatore.
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[6] Re: Debugger ARM, online?

Messaggioda Foto Utenteharpefalcata » 30 mag 2018, 11:51

xyz ha scritto:...


Ti ringrazio veramente tanto del suggerimento !! Sono riuscito ad installare qemu per STM32, passando attraverso un inferno di dipendenze mancanti, installate a mano. A questo punto vorrei chiederti un'ultima cortesia: qual è la procedura per connettere openocd a qemu, per simulare l'STM32?

Hai detto che una volta l'hai fatto, ma ho lletto a fondo il readme incluso nel porting di qemu, ma non spiega la procedura per avviare una sessione di debug.

Ti ringrazio tanto per la cortesia.

Un saluto.

Leonardo
Ultima modifica di Foto Utentexyz il 30 mag 2018, 12:00, modificato 1 volta in totale.
Motivazione: Evita di quotare tutto il messaggio.
Avatar utente
Foto Utenteharpefalcata
326 1 3 6
Stabilizzato
Stabilizzato
 
Messaggi: 422
Iscritto il: 28 lug 2015, 21:03

1
voti

[7] Re: Debugger ARM, online?

Messaggioda Foto Utentexyz » 30 mag 2018, 12:19

Openocd non serve, QEMU ha già l'interfaccia per il debug integrato nel proprio codice.

Per usare QEMU col debug GDB basta leggere la documentazione ufficiale, è uguale per tutte le architetture sopportate da QEMU e GDB:

https://qemu.weilnetz.de/doc/qemu-doc.h ... _005fusage
https://en.wikibooks.org/wiki/QEMU/Debugging_with_QEMU
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti