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.
Debugger ARM, online?
Moderatore:
Paolino
7 messaggi
• Pagina 1 di 1
0
voti
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?
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?
1
voti
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.
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.
0
voti
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.
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.
-

harpefalcata
326 1 3 6 - Stabilizzato

- Messaggi: 422
- Iscritto il: 28 lug 2015, 21:03
1
voti
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.
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.
0
voti
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
xyz il 30 mag 2018, 12:00, modificato 1 volta in totale.
Motivazione: Evita di quotare tutto il messaggio.
Motivazione: Evita di quotare tutto il messaggio.
-

harpefalcata
326 1 3 6 - Stabilizzato

- Messaggi: 422
- Iscritto il: 28 lug 2015, 21:03
1
voti
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
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
7 messaggi
• Pagina 1 di 1
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 5 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)


