mikrocontroller.net

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


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Alphabet vor lauter CCEs nicht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frank schrieb:
> Ich arbeite mit dem CCE

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

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Code Composer Essentials Core Edition...also Eclipse

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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:
void low_level_init(void)__attribute__((__naked__, __section__(".init3")));

void low_level_init(void)
{
  WDTCTL = WDTPW+WDTHOLD;    //Sitz....gib leise.
}

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

Autor: Frank (Gast)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Frank (Gast)
Datum:

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

Nein, die CPU geht nicht schlafen.

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.