float Berechnung erzeugt Compiler-Fehler??

Gast #467885
Hallo,
ich möchte in meinem Programm die Genauigkeit der Berechnung erhöhen und 
habe folgende Zeilen eingefügt:

float c0 = 0;
.
.
c0 = Proh * 0.534f;

Allerdings bringt mir der Compiler folgende Fehlermeldung:

Linking: main.elf
avr-gcc -mmcu=atmega8 -I. -g   -Os -funsigned-char -funsigned-bitfields 
-fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o 
-std=gnu99 -Wp,-M,-MP,-MT,main.o,-MF,.dep/main.elf.d main.o ea_dog.o 
menu.o   --output main.elf -Wl,-Map=main.map,--cref    -lm
C:\Programme\WinAVR\bin\..\lib\gcc\avr\3.4.3\..\..\..\..\avr\bin\ld.exe: 
region text is full (main.elf section .text)
make.exe: *** [main.elf] Error 1

Wenn ich die Berechnung auskommentiere gibt es kein Problem.
Kann mir jmd. helfen??

thx Daniel
Gast #467891
Nix Compiler:
>Linking: main.elf

Linker...

>region text is full
Das ist der Fehler...(was der bedeutet, kann ich aber auch nicht sagen).
Moderator Persönliche Seite #467920
Daniel Held wrote:

> So habe ich keine Chance?

Du kannst ja gucken, was sonst noch alles Platz vermplempert.

> Betrifft das denn kompletten Code für den Flash oder nur einen
> bestimmten Raum?

Was soll ,,ein bestimmter Raum'' denn sein?  Flash ist flash.

Was mir immer ganz hilfreich war für die Analyse:

avr-nm --size-sort --print-size <name of your ELF file>

Alle Symbole mit einem "T" (globale Funktionen), "t" (statische
Funktionen) und letztlich auch mit einem "D" oder "d" (globale bzw.
statische Daten, die haben ihre Initialisierungswerte im ROM)
interessieren dich hier.  "B" und "b" kannst du ignorieren, die
brauchen ausschließlich RAM (werden beim Start mit 0 initialisiert).

Die erste Spalte ist die Adresse des Symbols (die interessiert dich
nicht nennenswert), die zweite ist die Größe (beides hexadezimal).
#468268
Arbeitest Du mit AvrStudio? Dann könnte es hilfreich sein, wenn Du bei 
den Linker Optionen die libm.a  hinzufügst, (falls nicht schon gemacht). 
Diese belegt deutlich weiniger Speicher als die generische GCC libm.

MfG Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.