Forum: Mikrocontroller und Digitale Elektronik Hilfe! :-) CCE: Warning: "CPU OFF" - wie initialisiere ich den Watchdog als erstes?


von Frank (Gast)


Lesenswert?

Hallo ihr Lieben!


Ich arbeite mit dem CCE und bekomme nun die Warnung, dass meine CPU aus 
ist. Ich habe mich ein wenig schlau gelesen, dass es daran liegen wird, 
dass ich zu viele Deklarationen vor der main() habe und deshalb der 
Watchdog einspringt, bevor ich ihn aktivieren kann.

Wie kann ich sicherstellen, dass das das Erste ist, was passiert?

Kann mir da einer helfen?

von Alphabet vor lauter CCEs nicht (Gast)


Lesenswert?

Frank schrieb:
> Ich arbeite mit dem CCE

Der Acronymfinder sagt: What does CCE stand for?
Your abbreviation search returned 148 meanings.

von Frank (Gast)


Lesenswert?

Code Composer Essentials Core Edition...also Eclipse

von Christian R. (supachris)


Lesenswert?

Die Glaskugel sagt, dass es Code Composer Essentials ist und sich um 
einen MSP430 handelt. Du musst mit der passenden Anweisung dem Linker 
mitteilen, dass er den Code zum Deaktivieren des Watchdogs vor die 
Initialisierung packt. Aber CPU off scheint was anderes zu sein, denn 
wenn der WDT anspringt, bevor große Arrays initialisiert sind, macht der 
MSP ständig einen Reset.

Für den GCC geht das so:
1
void low_level_init(void)__attribute__((__naked__, __section__(".init3")));
2
3
void low_level_init(void)
4
{
5
  WDTCTL = WDTPW+WDTHOLD;    //Sitz....gib leise.
6
}

Sowas ähnliches gibts sicherlich auch beim CCE, musst du in der 
Anleitung suchen.

von Frank (Gast)


Lesenswert?

Ok, hab ich mal rein kopiert, geht leider nicht direkt ;-)

von Peter D. (peda)


Lesenswert?

Während der Entwicklung sollte man den Watchdog generell ausgeschaltet 
lassen.

Erst wenn die komplette Funktion fertig und getestet ist, wird als 
letzter Schritt die Watchdogfunktion hinzugefügt.

Der Grund ist, daß ein Watchdog Entwicklungsfehler verschleiert und das 
Debugging erschwert.

In der Entwicklung willl man ja Fehler beseitigen und daher muß man sie 
auch bemerken.


Peter

von Frank (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Während der Entwicklung sollte man den Watchdog generell ausgeschaltet
> lassen.

Ja, das hab ich ja...nur habe ich gelesen, dass es Probleme geben kann, 
wenn das Initialisieren der Variablen länger dauert, als der Watchdog 
für einen Überlauf braucht...daher kann man den direkt als aller erstes 
ausschalten...nur weiß ich nicht wie

Finde das nicht mit dem __low_level Befehl für denCode Composer

von Christian R. (supachris)


Lesenswert?

Naja, 1:1 ist das natürlich nicht auf den CCE Compiler anwendbar. Da 
musst du mal die Doku lesen. ich hab hier irgendeine von CCE3, da gibts 
Abschnitt 6.9 System Initialization da steht drin, wie das abläuft. 
Ansonsten mal auf der TI Seite im Forum fragen oder eine Mail an de 
Support.

Wie gesagt, ich denke aber dass es daran nicht liegt. Legst du die CPU 
schlafen in der main(), wenn du alles initialisiert hast?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Peter Dannegger schrieb:
> Während der Entwicklung sollte man den Watchdog generell ausgeschaltet
> lassen.

Das kann man so generell nicht sagen. Wenn man die Reset-Flags mitloggt, 
bemerkt man den Absturz bzw. das Festhängen sehr wohl und ist mitunter 
froh, dass der Wachhund zugebissen hat. Das hat schon so manchen MOSFET 
oder die angeschlossene Last gerettet. Man bedenke, man verläßt kurz das 
Zimmer, um etwas Wasser wegzutragen und wenn man wiederkommt, brennt die 
Arbeitsplatte. Mit Wachhund sieht man das blinken der StatusLED oder 
hört mitunter das in die Begrenzung fahrende Netzteil oder bemerkt 
andere zyklische Symptome.

von Frank (Gast)


Lesenswert?

Christian R. schrieb:
> Legst du die CPU
> schlafen in der main(), wenn du alles initialisiert hast?

Nein, die CPU geht nicht schlafen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.