Come posso eseguire il debug di un Arduino Uno con gdb su un PC Linux?


10

Come posso eseguire il debug (codice sorgente singolo passaggio) un Arduino Uno con gdb su un PC Linux? Nota che non mi piace usare AVR Studio in wine o VirtualBox.

Domanda 1: connessione fisica

Come e cosa mi collego alla scheda Uno? La mia ipotesi è che dal momento che la scheda Uno è popolata con un ATmega328, dovrebbe essere disponibile un codice sorgente a passo singolo? Suppongo anche di poter utilizzare un AVR JTAGICE mkII o un AVR Dragon sull'intestazione ICSP?

Domanda 2: server GDB

Poi ho notato che ci sono alcuni progetti come AVaRICE che sembra fornire una funzione da jtag a gdb, ma potrebbero esserci altri progetti?

Domanda 3: dov'è l'elfo?

E se riesco a farlo funzionare, dove l'IDE di Arduino nasconde l'output generato come il file elf con i simboli di debug (dovrebbe essercene uno)? O devo generare un Makefile classico che usa solo le librerie Ardino?

Ho provato a trovare alcune informazioni su cosa / come usare, ma ho trovato solo quegli indizi che mi dicevano cosa avrei potuto fare. Qualcuno può spingermi nella giusta direzione?


Risposte:


3

Puoi trovare gli artefatti del compilatore tenendo premuto il tasto Maiusc quando fai clic sul pulsante di compilazione nella versione precedente dell'IDE (leggi <1.0). Nelle versioni più recenti (leggi> = 1.0) c'è un'opzione nella finestra di dialogo delle preferenze per visualizzare output dettagliati durante la compilazione (vedi screenshot). Con output dettagliato la cartella in cui finiscono tutti gli output del compilatore viene stampata (ripetutamente) nella console. Questo dovrebbe iniziare almeno.

screenshot arduino mostra output dettagliato durante la compilazione

Su una nota a margine, ci sono stati tutti i tipi di chiacchiere su questo argomento nell'elenco degli sviluppatori di Arduino all'inizio di giugno 2012 e qualcuno ha pubblicato un annuncio nell'elenco degli sviluppatori di Arduino su un modo migliorato / integrato di debug GDB per Arduino, ma non ho studiato molto più lontano. Suppongo che il progetto si chiama VisualMicro (?). Sembra che sia stato creato come un plug-in di Visual Studio, quindi potrebbe non esserti utile in un ambiente Linux, ed è anche in beta, ma ti lascerò decidere.


Ho abilitato "Abilita output dettagliato durante la compilazione" e usano qualcosa come /tmp/build3652385594823436592.tmp/ come dir di build, anche l'elf è stato creato con il flag -g quindi dovrebbe contenere i simboli di debug. Ciò significa che ho trovato i manufatti di costruzione, ora ho solo bisogno di far funzionare il jtag.
Johan

3

Il simulatore del processore AVR di Simavr ora fornisce un buon server GDB per il debug di AVR firmvare, incluso Arduino. Puoi usarlo da solo (richiede di scrivere una piccola applicazione console per la tua particolare configurazione hardware) o dall'interno dell'ambiente della GUI di Simutron , dove puoi definire la configurazione hardware tramite acquisizione schematica.

Nota: con questi strumenti non hai una connessione fisica poiché tutto l'hardware è simulato.


2

Questa è la risposta in un articolo del diario di Linux a cui fa riferimento una domanda simile: Jtag debugging AVR .

Fondamentalmente, usando avr-gdb e simulavr in tandem, è possibile eseguire il software su una scelta di microcontrollori AVR attraverso il simulatore, mentre si utilizza GDB per scorrere e osservare il codice di esecuzione.

Spero che sia di aiuto!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.