2017-07-11 1 views
0

Je développe un C embarqué pour un microcontrôleur TI MSP430, et j'ai passé les deux derniers jours à migrer de l'IDE et de la chaîne d'outils propriétaire de TI vers un flux de travail plus unix-make + gcc. J'essaye maintenant de mettre en place le débogage avec WinGDB (Visual Studio avec le backend de gdb) et je l'ai principalement fonctionné. Il y a juste un problème avec des points d'arrêt qui, je le soupçonne, se résume à un problème de barre oblique inversée ou de barre oblique inverse, mais je ne sais pas comment réparer.Problème avec les points d'arrêt utilisant WinGDB + VS2017

Je peux commencer le débogage sans problèmes, je peux parcourir, vue du démontage, etc. Mais lorsque je tente de mettre un point d'arrêt dans le fichier source à l'aide F9, il apparaît comme désactivé avec le hovertext:

The breakpoint will not currently be hit. No source file named d:Documentsccs workspacesmsp430 scratch\013cxmain.c. 

Location: main.c, line 13 ('main(void)') 

Cependant, je peux définir et effacer des points d'arrêt de travail avec les commandes gdb dans le shell du débogueur WinGDB, mais aucun petit cercle rouge n'apparaît à côté de la source.

Le chemin de main.c est D: \ Documents \ ccs workspaces \ msp430 scratch \ vcx \ main.c et j'ai découvert que la séquence d'échappement \ v correspond à une tabulation verticale, ou octal \ 013 en ascii. Donc, je devine que les barres obliques inverses falsifient quelque chose quelque part (merci windows).

Des idées où chercher pour résoudre ce problème?

Répondre

0

Votre erreur affichée est généralement générée lorsque votre code est optimisé par le compilateur - tel que a = 2; et jamais plus utilisé. Mais le principal problème (s) pourrait être lié à votre croix toolchain - sur ce link la toolchain croix mis en œuvre WinGDB est CodeSourcery G ++ Lite toolchain pour ARM, tandis que votre micro, MSP430 n'est pas un dispositif ARM. (il y a un MSP432, qui est un périphérique ARM). Peut-être que vous pouvez regarder cela: www. Energia.nu, quelque chose de similaire à Arduino, fonctionne avec plusieurs versions de MSP430.

0

Vous avez raison, il s'agit d'un problème de barre oblique inverse, les enregistrements de débogage générés pour vos fichiers qui indiquent au débogueur quel fichier & ligne a abouti dans quel groupe de codes d'opération.

Vous pouvez modifier votre processus de construction à utiliser des barres obliques partout, puisque votre chaîne d'outils est gcc basée il devrait trouver les fichiers nommés D:/Documents/ccs workspaces/msp430 scratch/vcx/main.c mais vous êtes aussi susceptibles d'avoir des problèmes à cause des espaces dans votre chemin, restructurer votre projet de sorte que tous les espaces sont remplacés par des traits de soulignement, c'est-à-dire D:\Documents\ccs workspaces\msp430 scratch\vcx\main.c est déplacé à D:\Documents\ccs_workspaces\msp430_scratch\vcx\main.c etc, espaces dans les chemins peuvent causer toutes sortes de problèmes. Alors qu'il est possible d'échapper des espaces dans les chemins, il est préférable de simplement les éviter.

Je suggère également de jeter un oeil à Code::Blocks - bien que pas aussi joli que VS, il fournit un bien meilleur travail de fournir un environnement IDE et de débogage pour le développement multiplateforme et embarqué. C'est gratuit, multiplateforme et open source lui-même. Il s'interface très bien avec GDB et vous pouvez personnaliser la chaîne d'outils de construction qu'il utilise pour vos projets. Il vient même avec des préréglages pour GNU GCC pour MSP340, ainsi que beaucoup d'autres, donc devrait être très utile.

Code::Blocks in debug mode.