Forum: Mikrocontroller und Digitale Elektronik Bascom Programm zu groß - compiliert falsch?


von Quark (Gast)


Lesenswert?

Hallo,

ich habe hier ein sehr merkwürdiges Problem. Ich habe hier gerade ein 
Projekt am laufen, bei denen viele Grafikdaten verwendet werden. Also 
wird der generierte Code für den µC (Ein Atmega 2560) sehr groß.

Jetzt habe ich das Problem, dass wenn der Code eine Größe von 25 % des 
Controllers (Also ca. 64 KB) überschreitet, dann werden Kreise nicht 
mehr als Kreise gezogen, sondern nur noch ein paar Punkte gemalt.

Z.B. diese Funktion:
1
For Za = 0 To 3
2
Circle(16 , 115) , Za , 1                             
3
Next

sollte eigentlich einen dicken Punkt auf meinem 240 x 128 Grafikdisplay 
ergeben. Doch wird hier nur ein X sichtbar.

Entferne ich jetzt entweder ein paar Grafikdaten oder auch irgendeine 
beliebige Stelle Code, damit der Code insgesamt wieder unter 25 % kommt, 
dann wird wieder alles richtig angezeigt. Ein Programmierfehler kann es 
dann ja nicht sein. Schafft Bascom keinen größeren Code als 64KB zu 
erzeugen oder wie ist das? Hat da schon jemand mit Erfahrung gemacht?

von MWS (Gast)


Lesenswert?

Ist die Basom Version aktuell ? Ansonsten ein Update machen. Hört sich 
nach 'nem RAMPZ Problem an, das gab's mal.

von Viktor N. (Gast)


Lesenswert?

Vielleicht die ueblichen Fehler gemacht ? zb unnuetze floating point 
operationen. zB eine eierlegende Wollmilchsau von Print-string 
Formatierung ?

von Quark (Gast)


Lesenswert?

Die BAscom Version ist 2.0.7.6. Also die Neueste.

@Victor N. was meinst du damit? Mein Programm sieht Momentan so aus, 
dass es ein simples Menü darstellt und hinter jedem Menüpunkt eine 
Grafik angezeigt wird. Jetzt habe ich auch ein Menüpunkt wo Kreise und 
Linien, Punkte etc. angezeigt werden. Linien werden noch sauber 
gezeichnet aber bei Kreisen werden anscheinend nur noch Eckpunkte der 
Kreise gezeichnet.

Und wie schon geschrieben, wenn ich irgendeine Grafik entferne oder auch 
den Code verkürze, damit ich eben auf z.B. 24 % Belegung des Controllers 
komme, dann wird wieder alles richtig angezeigt. Und es ist dabei Egal 
wie und was ich entferne. Hauptsache das Programm kommt unter 25 %. Das 
ist ja das Merkwürdige

von MWS (Gast)


Lesenswert?

Stacks & Frame sind groß genug ? Wenn's das nicht ist, kann's wie gesagt 
ein RAMPZ Problem sein, dann wird die entsprechende 64k Seite im Flash 
nicht richtig adressiert.
Das ist dann ein Fall für den Support.

von Weingut P. (weinbauer)


Lesenswert?

so ähnliche Effekte hatte ich auch mal beim 128, das kann einem echt den 
Tag verderben.

Bei mir wars wenn ich via ISP programmiert habe ok, wenns über den 
Bootloader ging wars nicht ok. Hab dann eben per ISP programmiert :(
eine Echte Lösung war das aber nicht.

von Quark (Gast)


Lesenswert?

@MWS Habe die Stacks und Frames mal bis ins lächerlich hohe eingestellt, 
aber das Problem löst sich dadurch nicht.

@weinbauer: Ja Ich Arbeite auch gerade mit einem Bootloader. Werde das 
mal mit ISP versuchen, aber das ist dann auch keine Lösung weil den 
Bootloader benutze ich ja auch, damit ich das Gerät per USB direkt aus 
Bascom heraus Programmieren kann.

von MWS (Gast)


Lesenswert?

Welcher BL? Gibt doch verschiedene im Samples-Verzeichnis, nimm ' nen 
anderen.

von Quark (Gast)


Lesenswert?

Ich benutze den "bootloader.bas" aus dem samples Verzeichnis. 
Eingestellt auf den Atmega 2560. Welchen anderen Bootloader soll ich 
verwenden? Da gibts meines Wissens anch nur diesen, der für den Atmega 
2560 passt.

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.