Hallo Zusammen,
ich bekomme den folgenden Text beim Projekt Output:
avr-gcc -c -g -03 -Wall -Vstrict-prototypes -V}a-ahIms~st_ test. Ist
-mmcu~at90s2333 -1. st_ test. c -o st_ test. st test.c: In function
>fahrt:
test. c: 194: warning: control reaches end of non-void function st_
test. c: In function jog:
st_ test. c: 287: warning: control reaches end of non-void function
avr-gcc st test. o -V}L-H awst test. map,-cref -mmcu~at90s2333 -o st_
test. elf
0*AVR000\RIN\..\Iib\gcc-Iib\avr\2.95.2\..\..\..\..\avr\bin\Id.exe:
region text is full (sL test.elf section .text)
0X4VR000\RIN\MAKE.D<E: [sLtest.elf] Error 1
1)mit der Meldung "region text is full " kamm ich nichts anfangen. Was
bedeutet sie und wie bekomme ich sie weg?
2) warning: control reaches end of non-void function
Wie vermeide ich diese Meldung?
Grüße Axel
Zu deinem ersten Problem kann ich nichts sagen, zu der Warnung allerdings schon. Du hast einige Funktionen die ein Int zurückgeben, du gibst allerdings garnichts zurück, dein "return xyz" fehlt einfach, und genau das vermisst auch der Compiler, denn er kommt an das Ende eine nicht-Void Funktion; gibt folglich keinen Wert zurück. Wenn die Funktionen wirklich nichts zurück geben sollen benutze Void.
"region text is full" bedeutet einfach, daß zu viel Code für den Controller produziert worden ist, der dann nicht mehr in den Flash paßt.
Hallo Sascha, Hallo Joerg, vielen Dank für Eure Antworten. Nun klappt es. Grüße Axel
wenn du mit der aktuellen winavr version arbeitest solltest du die syntax dringends ändern wie z.b outp(0xFF, DDRB); IN: DDRB = 0xff; ansonsten bekommst du sehr wahrscheinlich in der nächsten winavr ausgabe probleme da befehle wie outp(), sbi(), cbi() usw. alt und aus der avrlibc heraus genommen werden bzw schon genommen wurden. gruss, BAB
Hi sbi() und cbi() fliegen raus? Sollte man also PORTD&=.. zum löschen und PORTD|=.. zum setzen verwenden? Es scheint ja entsprechend optimiert zu werden. Matthias
eric weddington wrote: outp, inp are deprecated now. outb, inb, sbi, cbi will be deprecated with the next release. But they will all still be included in the next release, so you have a while to make the transition. du kannst auch zur besseren code übersicht PIND |= _BV(PD7); schreiben. dahinter steckt nix anderes wie: PIND |= (1 << PD7); Gruss, BAB
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.