Hallo, ich arbeite mit einem Lattice ECP2 und hab da drin einen Mico32 core. Generell funktioniert alles super, aber die Codegröße macht mir zu schaffen. Bei einem "blank Project" also ohne Variablen zu initialisieren und ohne im Hauptprogramm irgendetwas zu machen braucht der Code schon ca. 14kByte. D.h. ich brauche rund 7 ebr's nur für den Code der eigentlich nix macht. Ich hoffe dass das nur eine Einstellungssache im Eclipse ist.... Wenn jemand eine Idee hat, dann bitte melden Herzlichen Dank Bernhard
Hm, also zu deinem eclipse kann ich dir nicht viel sagen, aber wenn ich hier ein: int main() { while(1) ; return 1; } mit dem lm32-gcc kompiliere und noch einen kurzen startupcode dabei mache komme ich auf ne codesize von ein paar bytes :) ergo, gehts wesentlich kleiner, nur kann ich dir nicht sagen wie das geht in eclipse, ich nehme mal an, da ist noch die ganze hardware abstraktionsschicht dabei, und evtl noch c++ support etc. gruß michael
Hallo Michael, danke für deine Antwort, wenn ich so ähnliches Programm gestalte bekomme ich in der Console: lm32-elf-size test.elf text data bss dec hex filename 11612 408 712 12732 31bc test.elf Build complete for project test Kannst du mir vielleicht erklären was genau diese Größen sind? Kann mittlerweile einfach nicht glauben das diese Werte stimmen!! Danke Bernhard
Hallo Bernhard, .text ist dein eigentlicher code, den kannst du dir auch mit lm32-elf-objdump -d test.elf anzeigen lassen. .data sind afaik die initialisierungsdaten für deine symbole/variablen .bss ist die größe des rams für globale/statische symbole lm32-elf-nm listet dir übrigens alle symbole (also variablen und funktionen) auf, die in deinem test.elf sind. evtl hilft dir das weiter. benutzt du win oder linux? ich kann dir leider nicht sagen wie du die programme lm32-elf-* an der konsole startest.
Hallo Michael, danke für deine Antwort, ich benutze windows xp. heißt das dass mein text mit 11612 also ca. 12kByte groß ist? Danke Bernhard
ja. hier auf der arbeit hatten wir auch mal das problem, dass die dateien für nen NIOS so groß waren. da konnte man in eclipse in den projekteigenschaften irgendwo 'tiny libc' anschalten, sowie den support für c++ deaktivieren. musst du mal suchen, ich benutze selbst leider kein ecplise.
Hallo, also ich würde auch empfehlen die Small C Lib zu verwenden. Die kann in Eclipse in den Build settings ausgewählt werden. Zudem solltest Du dort nachsehen ob dein Build für Production oder Debugging optimiert wird. Das hat auch Einfluss auf die Codegrösse. Zudem hat die Verwedung von PrintF fürs Debugging Einfluss auf die Codegrosse. Wenn Du den Managed Flow verwendest, werden für die eingesetzte Peripherie Funktionen (Initialisierung, schreiben, lesen etc) dazugelinkt, egal ob Du sie brauchst oder nicht. Hier macht es Sinn die jeweiligen Header aufzuräumen. Ich hoffe das hilft ein bisschen Lupi
Hallo, weiß jemand wo ich den Support für c++ deaktivieren kann? Use Small-C ist angeklickt, bringt leider nix. Configuration auf Relaese bringt aber auch nur ein paar Byte. Meinst du mit Management Flow bei einem neuen Projekt anlegen ob Managed Make C Projekt oder Standart Make C Projekt? Was genau meinst du mit: Zudem hat die Verwedung von PrintF fürs Debugging Einfluss auf die Codegrosse. Ich verwende in meinem gesamten Projekt kein printf. Danke Bernhard
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.