Hallo liebe Forengemeinschaft, ich wollte mal nachfragen, ob es sein kann, dass ein 200ZeilerC++ (gcc), schon ca 7000bytes beim flashen auf einem Mega8 einnimmt??? dann sollte mein mega8 nach den nächsten 20zeilen ja so langsam voll sein??? oder verstehe ich da was falsch? vielen dank schon mal für die kleine hilfe... schönen abend... MFG Spice
C++? Wirklich? Kann ich mir kaum vorstellen. Aber selbst wenn es "nur" C ist: Die Zahl der Quellcodezeilen sagt zunächst mal überhaupt nix über die größe des eigentlichen Programms aus! Man kann auch mit ein paar wenigen Zeilen einen Mega8 vollschmeißen, wenn man die richtigen Funktionen einbaut (printf, Gleitkommageschisse usw...) und evtl. auch noch die Optimierung nicht einschaltet...
Ein paar fette librarys einbinden und schon ist die Kiste voll. Ansonsten schliesse ich mich Johannes an. Gruss Andy
Tja, so ist das, wenn man PC-Programmierer (oder welche, die sich dafür halten) unbedarft auf AVRs loslässt... Beim AVR gibt es kein OS, da programmiert man direkt an der Hardware, da sollte man schon mal etwas auf den sinnvollen Umgang mit den Ressourcen achten. ...
@hannes woher weißt du denn die ganzen Einzelheiten über Programmierer und Hintergrundwissen des Programmierers, weil Du so clever antwortest. Hier stehen keinerlei Aussagen über das Thema - aber immer drauf. Hilf lieber anstatt zu mosern und klug zu sch..
>Hier stehen keinerlei Aussagen über das Thema - aber immer drauf. >Hilf lieber anstatt zu mosern und klug zu sch.. Hannes hat schon recht. Solange der OP nicht antwortet was er denn da alles reingequetscht hat ist das hier sowieso nur fröhliches rumraten.
> Hilf lieber anstatt zu mosern und klug zu sch..
Meine Hilfe lag darin, darauf hinzuweisen, dass man etwas auf die
Ressourcen achten sollte. Und das machen viele sogenannte
PC-Programmierer schon lange nicht mehr.
Achja, wenn Du andere Leute anpissen willst, dann melde Dich bitte an.
Aber dazu bist Du anscheinend zu feige. Schießt wohl lieber anonym aus
der letzten Reihe...
...
Hi,
> wo schaltet man die codeoptimierung ein?
Verrate mal, welche "toolchain" Du benutzt, dann bekommst Du eine
treffende Antwort!
Falls es sich um GCC+AVRStudio handelt, findest Du die Optimierung unter
Projects/Configuration Options/Optimization.
Gruß
Fred
Fred S. wrote: > Falls es sich um GCC+AVRStudio handelt, findest Du die Optimierung unter > Projects/Configuration Options/Optimization. ...und wenn AVRStudio nicht beteiligt sein sollte, dann im Makefile...
ohje, so viele antworten übersehen... Danke Hannes, bist du hier eigentlich "nur" registrierter User oder hat man dir auch gleich die Lizenz zum "sch*****" labern mitgegeben... Aber sonst erstmal vielen dank an "alle-1" für die beiträge. Also ich habe keine codeoptimierung an, daher wollte ich fragen wie ich das anstelle... inkludiert sind: #include <avr\io.h> #include <util\delay.h> #include <stdlib.h> #include <avr\interrupt.h> #include <avr\sleep.h> desweiteren werden 5-6 Variablen deklariert und uart-functions + 3 eigene kleinere funktionen. PowerDown ist konfiguriert und 2 ISRs sind am Laufen... main sieht ca so aus :-) int (main) void { bool hannes = false; while (1) { if (hannes == 0) { uart_puts("Hannes is´n Klugsch******"); DDRC = 0x00; } }; ....... return 0; } konnts mir einfach nicht verkneifen... benutze übrigens avr workpad plus, kanns daran liegen? Danke nochmal und schönen abend... Spice
>main sieht ca so aus :-) Und wie sieht die präzise aus ? Das erzeugt auf jeden Fall keinen 7kB Code. >eigentlich "nur" registrierter User oder hat man dir auch gleich die >Lizenz zum "sch*****" labern mitgegeben... Ist er nicht süß ;)
Leute Leute .... Immer sachlich und locker bleiben ! Wenn Hannes mit Seiner Vermutung falsch lag, dann reicht es wenn man dies klarstellt. Nicht mehr nicht weniger. Ich kann Holger teilweise zustimmen. Der Code von Spice hat definitiv keine 7k. Dem "süß" kann ich leider nicht zustimmen.... Leute zu beschimpfen, die man um Hilfe frage .... ohne Worte. Michael
>Dem "süß" kann ich leider nicht zustimmen.... Leute zu beschimpfen, die >man um Hilfe frage .... ohne Worte. Ich meinte nicht Hannes ;)
Hallo, Spice wrote: > Hallo liebe Forengemeinschaft, > > ich wollte mal nachfragen, ob es sein kann, dass ein 200ZeilerC++ (gcc), > schon ca 7000bytes beim flashen auf einem Mega8 einnimmt??? > dann sollte mein mega8 nach den nächsten 20zeilen ja so langsam voll > sein??? > oder verstehe ich da was falsch? > vielen dank schon mal für die kleine hilfe... > > schönen abend... > MFG Spice naja, Hannes hätte ja auch einfach seine Fragen beantworten können: zu 1. ja zu 2. vermutlich zu 3. möglich Viel mehr ist doch aus den Fragen nicht rauszuholen. Codeoptimierung wurde schon angesprochen und ob man es schafft, hängt vom tatsächlichen Code ab, nicht von einer ca.-Version, die übrigens nicht funktioniert, weil der uart nicht initialisiert ist... Gruß aus Berlin Michael
Hannes Lux schrieb: > Beim AVR gibt es kein OS, da programmiert man direkt an der > Hardware, da sollte man schon mal etwas auf den sinnvollen Umgang > mit den Ressourcen achten. Wieso denn das? Wenn auf dem AVR kein Windows drauf ist, sollte doch mindestens 1GB zusätzlicher Speicher frei sein?
Also wenn die Main Funktion wirklich "nur" so aussieht, was willst du dann mit der stdlib? Wie sieht dein uart_puts etc aus? Alles was uns helfen würde wäre der gesamte Code. Auch wenn eine lib eingebunden ist (eben wie die stdlib) werden eigentlich nur die Teillibs integriert, die auch tatsächlich verwendet werden. Wenn man z.B. string.h einbindet, aber nur auf die strcmp-Funktion zurückgreift wird auch nur diese Funktion eingebunden und nicht gleich alles was die stdlib beinhaltet. Aber alleine eine Verwendung einer Fließkommazahl lässt das Hex-File auch schnell um fast 2KB anwachsen. Die Codeoptimierung alleine bringt meist nur wenige Prozent an geringerer Codegröße, z.B. 2,6 KB anstatt 2,9 ohne Optimierungen.
> #include <util\delay.h>
Ich vermute du hast irgendwo in deinem "..." einen _delay_xx Aufruf
drinnen...
Ohne Optimierung kann der allein schon mehrere kilobytes verbraten.
Ach ja, und Pfadagaben mit "\" in #includes sind schlechter Stil, besser
mit "/" angeben.
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.