Forum: Compiler & IDEs Externes RAM - ab bestimmter größe kein Watchdog Reset


von Frank Labudda (Gast)


Lesenswert?

Hi Leute,

ich habe folgendes Problem. Ich arbeite mit einem ATMega2560 und einem 
externen RAM ( LP621024D über Latch angeschlossen wovon ich 64k benutze 
).
Das ganze Funktioniert auch schon seit einiger Zeit nur es kommen immer 
mehr Funktionen dabei ergo der Speicherbedarf wächst kontinuierlich.

Zur Zeit habe ich folgende Auslastung meiner Bausteine:

Program Memory Usage   :  207150 bytes   79,0 % Full
Data Memory Usage   :  25795 bytes   39,7 % Full
EEPROM Memory Usage   :  3633 bytes   88,7 % Full

Linker Aufruf:
  -Wl,--section-start,.data=0x802200,--defsym=__heap_end=0x80ffff


Wie gesagt bisher funktioniert auch alles Einwandfrei.

Wenn ich jetzt mein Programm um ein paar Funktionen und Variablen 
vergrößere, dann habe ich das Problem das der Watchdog nicht mehr 
auslöst.

Zum Test habe ich eine Variable von 500Bytes angelegt. Vor dem Versuch 
löst der Watchdog bei einer Fehlererkennung aus. Danach nicht mehr.

AVRStudio motzt auch nicht.

Habe so das gefühl als ob die Sprungweiten zu groß sind aber wie bekomme 
ich das in den Griff?

Vielen Dank für eure Hilfe
Frank

von Peter D. (peda)


Lesenswert?

Frank Labudda schrieb:
> Vor dem Versuch
> löst der Watchdog bei einer Fehlererkennung aus. Danach nicht mehr.

Woher willst du das wissen?

Ich würde eher sagen, er löst schon beim Init des SRAM aus und Du kommst 
nie mehr ins Main.
Abhilfe: Setze in einer Init-Section den Watchdog auf eine längere Zeit.

von Frank Labudda (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Frank Labudda schrieb:
>> Vor dem Versuch
>> löst der Watchdog bei einer Fehlererkennung aus. Danach nicht mehr.
>
> Woher willst du das wissen?

Das der Watchdog nicht funktioniert ist nicht bei der Initialisierung 
sondern wenn der Mikrocontroller schon läuft.

Bei einer Fehlerkennung im System ( z.B. eine Karte ist nicht gesteckt ) 
wird ein Reset über den Wachtdog generiert um von vorne zu starten.

Abfolge ist folgende bei dem Beispiel wenn alles i.O. ist:

- Suche GPS-Daten
- Schaue ob alle Karten im System vorhanden sind
- Wenn eine 'notwendige' Karte nicht vorhanden ist löse Watchdog aus
- Neustart der Anlage

Abfolge ist folgende bei dem Beispiel wenn es nicht geht:

- Suche GPS-Daten
- Schaue ob alle Karten im System vorhanden sind
- Wenn eine 'notwendige' Karte nicht vorhanden ist löse Watchdog aus
- Anlage bleibt stehen.

von Frank Labudda (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Ich würde eher sagen, er löst schon beim Init des SRAM aus und Du kommst
> nie mehr ins Main.
> Abhilfe: Setze in einer Init-Section den Watchdog auf eine längere Zeit.

Hatte Dich falsch verstanden du hattest natürlich recht :).

Vielen Dank für die Hilfe.

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.