www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Studio zu Funktion springen


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe eine (vielleicht) blöde Frage: Ich benutze AVR Studio mit GCC 
um in C zu programmieren. Ich bearbeite gerade ein fremdes Projekt, 
welches aus mehreren Source-Dateien besteht.
In der main-Datei werden verschiedene Funktionen aufgerufen, die sich in 
den anderen c-Dateien befinden. Nun weiss ich jedoch nicht immer, wo. 
Gibt es eine Möglichkeit, direkt von der Stelle im Code zu der Funktion 
in die andere Datei zu springen? Ohne erst in den ganzen Files per Suche 
zu suchen um dann die c-Datei zu oeffnen, darin den Namen zu suchen und 
dahinzu springen?
Ich habe mit Eclipse programmiert, da ist das sehr gut / einfach gelöst.

Vielen Dank fuer die Mühe!
Alex

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deklariere die Funktionen in einer Headerdatei.

So z.B.

Inhalt von sourcefile1.h

void func1(void);
void func2(void);


in deiner main.c

#include "sourcefile1.h"


mfg.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex schrieb:
> Gibt es eine Möglichkeit, direkt von der Stelle im Code zu der Funktion
> in die andere Datei zu springen?

Nein, das kann der Studio-Editor nicht. Bau das Projekt in Eclipse auf, 
so schwierig ist das doch nicht.

Oliver

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schade.
... aber debuggen kann ich doch in eclipse nicht.

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex schrieb:
> schade.
>
> ... aber debuggen kann ich doch in eclipse nicht.

Ich glaube jetzt verstehe ich auch, was du willst.

Beim debuggen, musst du natürlich schon einen Breakpoint setzen, wenn du 
in eine andere Funktion springen willst.

Das Durchsuchen des gesamten Projektes nach der Funktion kannst du dir 
allerdings ersparen, indem du den Funktionsaufruf mit einem Breakpoint 
versiehst. Dann bleibt der Debugger da stehen. Wenn du jetzt <F11> 
drückst geht er genau auf den ersten Befehl der aufgerufenen Funktion.

Dann setzt du dort mit <F9> deinen Breakpoint, drückst <F5> und er 
bleibt bei deinem neuen Breakpoint stehen.

War's das?

mfg.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,
nein, das ist nicht mein Problem.
Also der Funktionsaufruf klappt, mit Headerdateien kann ich auch 
umgehen, die Frage war, ob es einen Weg gibt, um beim Editieren von 
einer Zeile der Main-Datei, welche einen Funktionsaufruf beinhaltet, 
dessen Zielfunktion sich in einer anderen c-Datei des Projektes 
befindet, zu springen. Direkt. So wie das in Eclipse moeglich ist.
Ich denke, Oliver hat mich soweit verstanden und seiner Antwort entnehme 
ich, dass es nicht möglich ist. Darauf bezog sich auch meine Antwort. 
Ich meinte damit, dass ich das Projekt schon in Eclipse exportieren 
koennte, aber da geht ja das debuggen mit dem JTAG nicht.
Vielen Dank trotzdem für Deine Mühe.
Schönen Sonntagabend noch.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex schrieb:
> schade.
> ... aber debuggen kann ich doch in eclipse nicht.

Tja, das Leben ist mühsam...

Du wirst mit den zwei Systemen parallel arbeiten müssen. Ich mach es 
schon seit langem so, editieren in Eclipse, debuggen im Simulator mit 
Studio (bzw. VMLAB).

Wobei m.E. debuggen per JTAG auf dem Zielsystem doch mit Eclipse/gdb 
geht, nur debuggen im Simulator geht dort nicht (sinnvoll).

Oliver

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.