Kann das obige jemand bestätigen? Ich hab mir den C18 mit nem 18F2320 mal angeschaut. Das einzige, was in meinem Quelltext steht, ist: #include <p18f2320.h> void main(void) { } Im Projekt-Baum wurde noch das Linker-Script eingefügt. Das Ganze belegt im Programmspeicher schon ca. 120 Programmzeilen. Is das normal? Beim Compilieren werden noch zwei Dateien geöffnet und abgearbeitet: c018i.c und __init.c Des Weiteren hab ich zwei einfache Zahlen miteinander multiplizieren lassen und das Ergebnis in ne float Variable geschrieben. Das hat nochmals ca. 100 Zeilen verbraucht. Wenn ich das Ergebnis in ne Int schreiben lasse, dann ist der Verbrauch erwartungsgemäß sehr gering. Gibts in C18 nur einen 32Bit Fließkomma-Typ? Im "getting startet.pdf" ist kein weiterer Fließkomma-Datentyp aufgezeigt. Hab ich wo ne falsche Einstellung drin oder was ist da los? Ansonsten arbeite ich mit den 16Fxxx und CC5 free. Da CC5 free allerdings auf 1k/2k begrenzt ist, wollte ich mir mal den C18 anschauen, damit ich mehr Programmspeicher zur Verfügung hab.
Ist schon alles ok so. Auch wenn ich die PICs nicht im Detail kenne. Ein leeres main() erzeugt aus dem grund schon code, weil da die Bibliothek zur Variableninitialisierung usw. eingebunden wird. Ist bei jedem anderen µC auch so. Wenn du mit FLOAT rechnes, dann werden eben (große) Teile aus der Fließkommabibliothek dazugelinkt. Ist auch bei jedem anderen so. Also keine Panik, alles im grünen Bereich. Das scheint erstmal viel Overhead zu sein, so lange man selbst noch keine Zeile programmiert hat. Aber dabei bleibts ja dann auch erstmal. Die Größe steigt nicht an, wenn du z.B. an einer anderen Stelle im Programm wieder mit FLOAT rechnest. Dann ist die Lib schon drin.
>Hab ich wo ne falsche Einstellung drin oder was ist da los?
Ich denke es fehlt dir einfach an Grundverständnis über Datentypen und
Rechnerarchitekturen.
@ARM-Fan: Danke schonmal @Jupp: Nein, mit Datentypen kenne ich mich aus. Da ich Assembler gelernt habe, weiß ich natürlich, dass man mit einer 8Bit CPU viele Rechenschritte für 32Bit Variablen benötigt. Das war aber auch gar nicht meine Frage, also stempel nicht jeden gleich zum Anfänger in dieser Hinsicht. Ich weiß auch nicht, warum sich hier manche immer so aufspielen und doch keine konstruktive Hilfe geben. Mit CC5 habe ich halt schon programmiert und dort wurde durch ein leeres main{} halt nicht so viel Speicherplatz verbraten. Naja, immerhin hab ich mit dem C18 keine Codegrößen-Beschränkung. Von dem her ist es auch nicht so schlimm, wenn der Code weniger effektiv ist.
Ich programmiere zwar kein C, aber ich bin dafür, dass man einfach mal den compiler entwicklern sagen sollte, dass sie wenn das Programm nur aus ner leeren main() besteht einfach die variableninitialisierung etc. einfach wegoptimieren sollten, dann ist jeder zufrieden ;)
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.