LPCXpresso Debug

Gast #5044902
Hallo

Ich verwende LPCXpresso v8.2.2 mit einem LPC Link 2.
Prinzipiell funktioniert alles, also ich kann compilieren, er lädt mir 
den Code auf das Target, und ich kann durchsteppen und mir den Inhalt 
der Variablen anschauen.

Meine Frage nun.
1.) Gibt es eine einfache Möglichkeit ein printf oder co. so umzuleiten, 
das ich es dann als Output im LPCXpresso sehe? (Ich möchte bei vielen 
Sachen zB keinen Breakpoint, aber den Verlauf der Variable sehe)

2.) Im LPCXpresso gibt es einen Reiter mit SWO Trace Config - Da sehe 
ich ein SWD Connection wo nur ein grauer Punkt ist ...
Gast
Ich habe es nicht hinbekommen.
Ich habe dann einen Uart aktiviert und dann Debug-Infos über seriell in 
ein 2tes Terminal ausgegben.
Das wird später auf der Zielplatine dann genauso sein.
Gast
Hmmm... Also wenn ich die RedLib (semihost) verwende, dann lässt sich 
alles kompilieren und co nur printf macht nix.
Sobald ich das __main() aufrufe gleich als erste zeile im main, dann 
bekomme ich einen Fehler.
Selbiges mit den newlib(semihost) immer einen Fehler und er steht dann 
in der zeile (nachher passiert nichts mehr)
1
__attribute__ ((section(".after_vectors")))
2
void HardFault_Handler(void)
3
{
4
    while(1)
5
    {
6
    }
7
}
Gast
Das __main() musst du nicht aufrufen, das macht der startup code (soll 
er machen), das wird zu einer Endlosschleife führen wenn das selber 
wieder main() aufruft.
Hast du ein LPCOpen Beispiel benutzt? Im Can Beispiel für 11C24 ist im 
startup code schon der richtige call drin wenn die richtigen defines 
verwendet werden:
1
#if defined (__REDLIB__)
2
  // Call the Redlib library, which in turn calls main()
3
  __main() ;
4
#else
5
  main();
6
#endif
7
  //
8
  // main() shouldn't return, but if it does, we'll just enter an infinite loop
9
  //
10
  while (1) {
11
    ;
12
  }
13
}
Gast
hmmm bin mir nicht ischer welches ich da habe :O

also ich habe von dem hier weggearbeitet : 
LPCXpresso_8.2.2_650\workspace\nxp_lpcxpresso_11c24_periph_blinky\exampl 
e\src\blinky.c

und in dem cr_startup ist dieses define drinnen
1
#if defined (__REDLIB__)
2
  // Call the Redlib library, which in turn calls main()
3
  __main() ;
4
#else
5
  main();
6
#endif

und das Library wähle ich wie im Bild1 aus. Das printf und co läuft zwar 
durch (also ich rufe das __main NICHT Auf, und es wird korrekt mein main 
aufgerufen und es läuft auch alles)
Nur ich sehe die Ausgabe des printf niergends (sollte ja vermutlich in 
der console auftauchen)


und zweite Frage Bild2 ... müsste da was ersichtlich sein?
Angehängte Dateien:
Gast
Habe es gerade nochmal an einem LPC1343 ausprobiert, ich muss nur gegen 
die Semihost Version von Newlib oder NewlibNano linken. Dann liefert ein 
printf wie gewünscht die Ausgabe im Console Fenster. Linken gegen die 
RedLib bringt Fehler beim linken. Die Code Red Spezialitäten werden aber 
schon lange nicht mehr unterstützt, die wurden ja von NXP aufgekauft und 
daraus ist das LPCXpresso entstanden. Deshalb würde ich auch nur die 
Newlib Versionen nehmen und das __CODE_RED und __REDLIB define aus den 
Compiler/Symbols Einstellungen rauswerfen.
Und der LPCLink2 sollte über das 10 pol. Kabel verbunden werden und SWD 
muss benutzt werden.

Der SWO Trace ist wieder etwas anderes und wird von den Cortex-M0 auch 
nicht unterstützt. Die Trace Funktion lassen sich viele Hersteller extra 
bezahlen und in der freien Version von LPCXpresso sind da nur 
eingeschränkte Features drin. Mit den Standard Debug Funktionen kommt 
man aber in den meisten Fällen auch aus.
Gast
hmm wenn ich auf das newlib umstelle, dann bekomme ich hier einen Fehler 
:
1
#if defined(CHIP_LPC11AXX) || defined(CHIP_LPC11CXX) || defined(CHIP_LPC11EXX) || defined(CHIP_LPC11UXX) || defined(CHIP_LPC1125)
2
#if defined(CHIP_LPC1125)
3
#error "LPC1125 support for the PMU driver is not ready
4
#endif
das ist die pmu_11xx.h ich weiss nicht wie er auf die Idee kommt das zu 
compilieren, da es ja kein LPC1125 ist sondern ein LPC11C24

mit dem RedLib was per default drinnen steht bekomme ich den Fehler 
nicht
Gast
... aber mit dem link hats nun geklappt !!

Danke! - verwende zwar nun die Redlib wie vorher . aber mit dem DEFINE 
bekomme ich die ausgabe nun in der Console!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.