mikrocontroller.net

Forum: Compiler & IDEs MSPGCC: Interessantes Verhalten


Autor: T. H. (pumpkin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin!

Gerade bin ich mit dem MSPGCC rumzumachen. Ich habe aber ein Problem bei 
dem
ich nicht weiterkomme - und langsam zweifle ich an meinen Fähigkeiten.
Folgendes (gestutzt):
volatile uint16_t   uiStartup   = 0;
volatile uint16_t  uiStartupDone   = 0;

int
main(void)
{
  uiStartup = 0;
  uiStartupDone = 0;

  InitTimer1A2();

  WRITE_SR( READ_SR | GIE );
  StartTimer1A2();

  while( uiStartup < STARTUP_DECOUPLING_CAPS_COUNT );

  StopTimer1A2();
  ClearTimer1A2();
  uiStartup = 0;
  // ...
  StartTimer1A2();

  while( uiStartup < STARTUP_CHARGEPUMP_CAPS_COUNT );

  StopTimer1A2();
  ClearTimer1A2();
  uiStartupDone = 1;
  // ...
  StartTimer1A2();

  // Power down to LPM3.
  WRITE_SR( (READ_SR & ~(OSCOFF | CPUOFF | SCG0 | SCG1)) | (LPM3_bits)
);

  while( true );
  return( 0 );
}

interrupt(TIMER1_A0_VECTOR) TA1CCR0InterruptVector(void)
{
  if( uiStartupDone == 0 )
  {
    uiStartup++;
  }
  else
  {
    // Hierhin kommt das Programm nie 
    // weil uiStartupDone immer 0 ist.
  }
}

Das Programm setzt uiStartupDone niemals auf 1. Es sieht so aus als 
wenn die Optimierung zuschlägt (-O3). Allerdings ändert sich das 
Verhalten nicht wenn ich die Optimierung ausschalte. DIe letzte 
Anweisung (LPM3) wird erreicht! Habe ich Tomaten auf den Augen?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> STARTUP_DECOUPLING_CAPS_COUNT
> STARTUP_CHARGEPUMP_CAPS_COUNT
Was sind die Werte dieser beiden Konstanten?
Passen die in einen uint16?

Autor: T. H. (pumpkin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jeweils 6U.

Autor: T. H. (pumpkin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommando zurück! Es war kein Fehler im Programm, Eclipse hat nicht immer 
die aktuelle ELF-Datei geflasht. Ich kann an dieser Stelle nur davon 
abraten, im der Eclipse Debug-Konfiguration im Reiter "Arguments" 
irgendwas zu übergeben (also nicht so wie hier [1] beschrieben) - Fehler 
werden nicht quittiert. Statt dessen sollte man unter "Debugger" ein 
"GDB command file" übergeben...

[1] http://msp430.techcontent.net/eclipse.htm

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, Eclipse ist da bissl eigen. Auch das Verwechseln von \ und / im 
File-Namen für das Elf File bringt interessante Effekte. Ebenso, wenn 
man bei den aktuellen msp430-gdb Versionen diese ganze "Set 
remotesize..." usw. mit in die ini schreibt. Da sucht man sich zu Tode, 
wieso es nicht klappt.

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.