MSPGCC: Interessantes Verhalten

OP Persönliche Seite #1137552
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):
1
volatile uint16_t   uiStartup   = 0;
2
volatile uint16_t  uiStartupDone   = 0;
3

4
int
5
main(void)
6
{
7
  uiStartup = 0;
8
  uiStartupDone = 0;
9

10
  InitTimer1A2();
11

12
  WRITE_SR( READ_SR | GIE );
13
  StartTimer1A2();
14

15
  while( uiStartup < STARTUP_DECOUPLING_CAPS_COUNT );
16

17
  StopTimer1A2();
18
  ClearTimer1A2();
19
  uiStartup = 0;
20
  // ...
21
  StartTimer1A2();
22

23
  while( uiStartup < STARTUP_CHARGEPUMP_CAPS_COUNT );
24

25
  StopTimer1A2();
26
  ClearTimer1A2();
27
  uiStartupDone = 1;
28
  // ...
29
  StartTimer1A2();
30

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

35
  while( true );
36
  return( 0 );
37
}
38

39
interrupt(TIMER1_A0_VECTOR) TA1CCR0InterruptVector(void)
40
{
41
  if( uiStartupDone == 0 )
42
  {
43
    uiStartup++;
44
  }
45
  else
46
  {
47
    // Hierhin kommt das Programm nie 
48
    // weil uiStartupDone immer 0 ist.
49
  }
50
}

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?
OP Persönliche Seite #1137635
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren