Debug Arduino Due

Bonjour arduinoïste,

Je travaille sur un gros projet et j'aimerais bien avoir une solution pour débugger tout ça. J'ai utilisé les print mais j'aimerais aller plus loin. Est ce que vous connaitriez une solution ? Sachant que sur ma carte Due j'ai un sheild SD qui utilise mes broches ISCP..

Je vous remercie d'avance

Bonjour Tayo, bein à part mettre quelques leds , pour vérifier le passage à certain endroit ou mettre des serial.print, il n'y a pas grand chose à faire.

Il faut savoir aussi que le Due est assez sensible aux parasites électriques, notamment le bus I2C et que les librairies dite compatible DUE, ne le sont pas dans certaines configurations.

Si tu veux tu vrai débogage il te faudra passer sur Atmel Studio, mais c'est pas simple à mettre en place.

Bonjour,

Il existe aussi 'visual micro'
http://www.visualmicro.com/page/Visual-Micro-Product-Version-History-Fixes-and-
Mais visual studio et la version pro de visual micro sont payants.

Perso, pour DUE, j'utilise les Serial.print avec la directive de compilation conditionnelle '#ifdef DEBUG ... #endif'.
Sur la DUE cela ne charge pas trop le programme vue la taille de la mem dispo.
Sur un de mes projet, avec plus de 3000 lignes de programme j'en suis à 82K.

Merci pour vos réponses ! :slight_smile:

bilbo83:
Il existe aussi 'visual micro'

Perso, pour DUE, j'utilise les Serial.print avec la directive de compilation conditionnelle '#ifdef DEBUG ... #endif'.
Sur la DUE cela ne charge pas trop le programme vue la taille de la mem dispo.
Sur un de mes projet, avec plus de 3000 lignes de programme j'en suis à 82K.

Je vais essayer visual micro. Par contre je n'ai pas compris ce qu'est exactement le #ifdef DEBUG, genre tu fais comme lui : http://forum.arduino.cc/index.php?topic=46900.0 ?

Par exemple si tu fait en tête de fichier: #define DEBUG 1.
Et que tu encadre tout tes Serial.print par des #ifdef DEBUG et #endif

Si tu as mis des Serial.print (xxxx) un peu de partout, dans ton programme pour debugger.
Lors de la compilation, tout les Serial.print seront compilés et executées par le programme.

Lorsque ton programme est au point il te suffira de faire #define DEBUG 0 ou de mettre cette ligne en commentaire.
A ce moment là, le compilateur ignorera les Serial.print.

Je connaissais pas ce truc, je te remercie ça va mettre utile !

Une petite remarque: que tu mettes #define DEBUG 1 ou #define DEBUG 0, les Serial.print seront compilés puisque DEBUG est défini

compilation de debug
#define DEBUG

compilation sans debug
//#define DEBUG

Oui, tout à fait kamill.
Le DEBUG 0 ou autre valeur, on peut l'utiliser lorsque l'on veut obtenir d'autres fonctionnalités.