Hallo an die Experten,
ich habe ein Programm, das seltsame Fehlfunktionen hat, sobald Stackcheck.lib drin ist.
Bascom Version 2.0.7.8 In Stackcheck.lib steht: history=version 2077
Prozessor: Atmega 1284p
Sobald die LIB eingebunden ist, habe ich Fehlfunktionen, z.B. eine Ausgabe per LCD (mit festem Text) wird in der Anzeige abgeschnitten und durch Müll ersetzt.
Upperline
Lcd "SMS:" ; Dest ; " "
Lowerline
Lcd "Senden im Gang..."
Die beiden LCD-Befehle bringen den Anfang vom Text und dann Müll. z.B. obere Zeile SM[Hiroglyphen] untere Zeile: Send[Hiroglyphen]
Problem tritt offenbar auf, seitdem Flash über 50% benutzt wird.
Speicher/Stack-Config:
$hwstack = 600 ' erst mal etwas größer anfangen
$framesize = 1000 ' gleich zu $Framesize!!!!!!!!!!!!!
$swstack = 600 ' erst mal etwas größer anfangen
$lib "stackcheck.lib"
$hwcheck
$softcheck
$framecheck
Wenn ich die Speichergrößen Berechne, dann bekomme ich HW/SW: je ca. 50, Framesize ca 500 (Paar größere Strings werden an SUBs übergeben), paßt alles.
Einziger Interrupt ist Timer-Interrupt-Routine (in der alle Register gesichert werden: Deklaration mit NOSAVE, dafür PUSH alle Register von Hand usw.) beide UARTS werden benutzt, aber gepollt. Ein Software-UART ist benutzt.
Sobald Stackcheck.lib nicht drin ist, läuft alles sauber.
Programm ist zu groß, um es direkt reinzuhängen.
Daher erstmal die Frage, ob irgendwas dazu bekannt ist?
Danke und Gruß,
Christian
PS, Falls es interessiert: Projekt dient zur Status-Fernüberwachung vom Wohnmobil und liefert aktuelle Daten zu Temperatur, Stromversorgung und Position an meinen Webserver, dort kann ich (gesichert) dann alles abrufen und verfolgen. Hardwarebasis ist eigenentwickelte Platine mit SIM800L Mobilfunkmodul und ublox GPS-Empfänger.
Status.pngweb.png
ich habe ein Programm, das seltsame Fehlfunktionen hat, sobald Stackcheck.lib drin ist.
Bascom Version 2.0.7.8 In Stackcheck.lib steht: history=version 2077
Prozessor: Atmega 1284p
Sobald die LIB eingebunden ist, habe ich Fehlfunktionen, z.B. eine Ausgabe per LCD (mit festem Text) wird in der Anzeige abgeschnitten und durch Müll ersetzt.
Upperline
Lcd "SMS:" ; Dest ; " "
Lowerline
Lcd "Senden im Gang..."
Die beiden LCD-Befehle bringen den Anfang vom Text und dann Müll. z.B. obere Zeile SM[Hiroglyphen] untere Zeile: Send[Hiroglyphen]
Problem tritt offenbar auf, seitdem Flash über 50% benutzt wird.
Speicher/Stack-Config:
$hwstack = 600 ' erst mal etwas größer anfangen
$framesize = 1000 ' gleich zu $Framesize!!!!!!!!!!!!!
$swstack = 600 ' erst mal etwas größer anfangen
$lib "stackcheck.lib"
$hwcheck
$softcheck
$framecheck
Wenn ich die Speichergrößen Berechne, dann bekomme ich HW/SW: je ca. 50, Framesize ca 500 (Paar größere Strings werden an SUBs übergeben), paßt alles.
Einziger Interrupt ist Timer-Interrupt-Routine (in der alle Register gesichert werden: Deklaration mit NOSAVE, dafür PUSH alle Register von Hand usw.) beide UARTS werden benutzt, aber gepollt. Ein Software-UART ist benutzt.
Sobald Stackcheck.lib nicht drin ist, läuft alles sauber.
Programm ist zu groß, um es direkt reinzuhängen.
Daher erstmal die Frage, ob irgendwas dazu bekannt ist?
Danke und Gruß,
Christian
PS, Falls es interessiert: Projekt dient zur Status-Fernüberwachung vom Wohnmobil und liefert aktuelle Daten zu Temperatur, Stromversorgung und Position an meinen Webserver, dort kann ich (gesichert) dann alles abrufen und verfolgen. Hardwarebasis ist eigenentwickelte Platine mit SIM800L Mobilfunkmodul und ublox GPS-Empfänger.
Status.pngweb.png