2011-08-29 8 views

risposta

24

Il modo per impostare "punti di interruzione di origine" su Arduino è aggiungere un'uscita seriale per inviare il valore che si desidera vedere al monitor seriale.

Quando sei pronto, il passaggio successivo è passare a WinAVR, AVR Studio e Atmel JTAG Mark II o Atmel Dragon.

Questi programmi e dispositivi consentono di creare codice C e un singolo passaggio attraverso il codice e monitorare variabili e registri. I dispositivi JTAG possono eseguire un singolo passaggio attraverso il codice C o il codice assembly creato dal compilatore.

Prevedete che la programmazione C ad alto livello è ancora molto vicina alla macchina e dovete fare attenzione a routine di interruzione a passo singolo, routine di timer e altre routine di basso livello perché molte volte impedirà il corretto funzionamento del codice.

+1

"Il modo per impostare 'punti di interruzione source' sul Arduino è quello di aggiungere un'uscita seriale per inviare il valore che si desidera visualizzare al monitor seriale ". Cosa succede se stai usando la tua porta seriale per qualcos'altro? – Jules

+2

Tre scelte di molti, aggiornare l'ambiente di sviluppo utilizzando AVR Studio e un dispositivo JTAG, utilizzare un mega Arduino con più porte seriali o utilizzare la libreria seriale del software. – Jeff

+0

Soluzione In realtà sto usando: attaccare un display LCD sul dispositivo e utilizzarlo per il debug piuttosto che per la console seriale, ma anche quelle opzioni sono interessanti. Non avevo mai visto software seriale prima, ma sembra utile per i progetti futuri ... – Jules

30

Il plug-in Visual Micro per Microsoft Visual Studio 2015 Community Edition (gratuito) fornisce un debugger USB per Arduino. Ti permette di fare esattamente come descrivi. (Non dimenticare di fare clic per installare C++ durante l'installazione di IDE)

Il debugger supporta seriale, RF, Bluetooth e alcuni Wi-Fi. Abilita i valori delle variabili da guardare o aggiornare mentre viene eseguito Arduino. Sono incluse visualizzazioni di grafici e dati/pin insieme a watch, trace, break.

Enter image description here

News: gennaio 2016 comprende anche il rilascio di un debugger GDB per l'Arduino Zero. Come con il debugger Serial/Bluetooth, la versione GDB supporta il codice sorgente ino/cpp, ma supporta anche il debug di core e librerie Arduino. Supporta molte funzionalità come: passo sopra, uscita, istruzione passo o linea sorgente, memoria, registri, gente del posto, orologio, espressioni dal vivo e traccia dello stack.

+0

Si può usare anche questo per eseguire il debug di C e assembly? – Pyjong

+0

@pyjong Il debugger predefinito utilizza Serial o Wifi che non funzionerà da c, funzionerà solo con .Ino e .cpp. Tuttavia se la tua scheda supporta Gdb o hai un debugger hardware ci sono altre opzioni, quindi ti preghiamo di aprire una discussione nel nostro forum e sollevare una domanda. Risponderemo e assisteremo. Grazie –

+0

Non ci sono alcuni requisiti per l'hardware affinché funzioni? Per esempio. funzionerebbe su un Arduino Uno? (Un lead può essere * [Debugger for Arduino] (https://www.codeproject.com/Articles/1037057/Debugger-for-Arduino) * (The Code Project). –

3

Per controllare le variabili, devo solo stamparle sul monitor seriale. Ecco un esempio su cui sto lavorando in questo momento:

# Setup 
Serial.begin(9600); 

# Loop 
Serial.println(String(index) + " : " + String(total) + " : " + String(average));