Microchips C18 = Recourcen-Fresser?

Gast #783521
Lesenswert?
• ▲
▼
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.
Gast #783574
Lesenswert?
• ▲
▼
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.
Gast #783823
Lesenswert?
• ▲
▼
@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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren