region text is full

Gast #39926
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
Angehängte Dateien:
Gast #39927
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.
Gast #39928
"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.
Gast #39930
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
Gast #39931
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
Gast #39932
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.