Hallo! Ich habe als Schulprojekt ein Steuerungssystem welches Schaltbefehle über SMS bekommt entworfen, und habe nun ein Problem. Ich habe eine Unterfunktion entworfen welche eine Antwort-SMS erstellt. Kompilieren ging ohne Probleme, nur wenn ich das Hex File auf den Controller brenne (AT89S8252) tut sich gar nichts mehr.. jetz hab ich Zeile für Zeile und Schleife für Schleife im Unterprogramm auskommentiert.. und nacheinander immer wieder eine Schleife mehr eingefügt.. ging bis zu einer ganz normalen For-Schleife gut.. dann ging wieder nichts mehr.. Testweise hab ich dann das Speichermodell von Large auf Compact gestellt - und nun ging es auch mit dieser For-Schleife.. aber nur solange bis ich die nächste Schleife wieder eingefügt habe.. Der gleiche Effekt tritt auf wenn ich die Unterprogramme für das Auslesen eines DS1621 in mein Projekt einbinde - kompilieren geht ohne Probleme, aber nachdem ichs ins System gebrannt habe geht gar nix mehr.. Kann mir jemand sagen woran das liegt? Bin mit meinen Überlegungen komplett am Ende.. Noch ein paar Details zu meinem Projekt: AT89S8252 Quarz:22,1184MHz Programmiert mit PonyProg über SPI Entwickelt in Keil µVision 2 mfg Roman
konkret handelt es sich um die Funktion void sms_status(void) => da sieht man eh das der größte Teil auskommentiert ist. Temp.c enthält die Funktionen für den Temperatursensor.
Du solltest Dich mal über die Speichermodelle informieren (C51-Primer lesen !). Was hast Du denn gegen das default Speichermodell Small ? Bei 8051 ohne extern angeschlossenen SRAM mußt Du Small nehmen und nichts anderes. Und bei 8051 mit internem XRAM mußt Du den im Startup.A51 auch enablen. Peter
P.S.: Large heißt nicht nur, ich will verschwenderisch mit globalen Variablen umgehen und ineffizient programmieren, sondern es muß überhaupt erstmal viel externer SRAM angeschlossen sein ! Peter
sorry hab in meinem stress das speicher modell mit der code rom size vertauscht.. memory modell is eh small..
Was sagt denn das *.m51-File über die Speicherauslastung (habe keinen RAR-Betrachter) ? Peter
das würde natürlich erklären warum das ding nichts mehr tut wenn ich den tempsensor reinprogrammier.. d.h. ich sollte mal das ganze projekt auf weniger speicher optimieren.. woran siehst du eigentlich das schon so viel voll is? ich blick im *.m51 file gar ned durch..
8kB sind 1FFFh und am Ende bist Du bei CODE: 1FF6H + 0003H. Der SRAM ist am Ende bei IDATA: 00CEH, d.h. da sind noch 50 Bytes für den Stack übrig, das sollte reichen. Peter
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.