Atmega88 region text overflowed by 156 bytes

Gast #2179378
Hallo Frunde

habe ein Problem und zwar ich versuche mein Programm zu compilieren, 
leider kommt immer die folgende Fehlermeldung:

c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe: 
hope.elf section .text will not fit in region text

c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/bin/ld.exe: 
region text overflowed by 156 bytes

gibt es eine Möglichkeit irgendwie den Speicherbereich zu erhöhen, oder 
muss ich irgendwelche Variablen umdeklarieren???

wäre nett wenn jemand mir helfen kann
MfG
tja, dein flash ist voll.
entweder du nimmst einen Mega168 oder du schaust wo du was einsparen 
kannst.

Rico schrieb:
> muss ich irgendwelche Variablen umdeklarieren???

nö, hier geht es um den Programmcode oder Konstanten, Strings, 
intialisierte (!=0) Variablen

Poste doch mal deinen Code, vielleicht kann man dir Tips geben
Hab das gerade mal compiliert:

Build started 11.5.2011 at 16:47:12
In file included from ../test88.c:5:
c:/winavr-20100110/lib/gcc/../../avr/include/avr/signal.h:36:2: warning: 
#warning "This header file is obsolete.  Use <avr/interrupt.h>."
../test88.c: In function 'Schwellwertvergleich':
../test88.c:514: warning: large integer implicitly truncated to unsigned 
type
../test88.c:505: warning: 'RkaFehler' may be used uninitialized in this 
function
../test88.c:505: warning: 'RkiFehler' may be used uninitialized in this 
function
avr-gcc -mmcu=atmega88 -Wl,-Map=test88.map test88.o     -o test88.elf
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature 
test88.elf test88.hex
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" 
--change-section-lma .eeprom=0 --no-change-warnings -O ihex test88.elf 
test88.eep || exit 0
avr-objdump -h -S test88.elf > test88.lss

AVR Memory Usage
----------------
Device: atmega88

Program:    7902 bytes (96.5% Full)
(.text + .data + .bootloader)

Data:        382 bytes (37.3% Full)
(.data + .bss + .noinit)


Build succeeded with 4 Warnings...


mfg.
Naja, und den Rest kann/muss man auch ein wenig aufräumen. Z.B dein 
adc_capture. Du musst nicht immer die erste Messung wegwerfen. Das muss 
man nur einmal nach dem Einschalten der Referenzspannung. Siehe

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Der_interne_ADC_im_AVR

Leerzeilen sind wichtig zur übersichtlichen Formatierung, man kann es 
aber auch überteiben.

Das mit Nachladen des Times vergiss mal schnell wieder, das war "damals" 
OK als es keine bessere Möglichkeit gab. Heute nimmt man den CTC Modus. 
Da muss man auch keinen 16 Bit Timer verbraten.

Und auch wenn dein Interrupt nur alle 10s einmal klinget, so macht man 
dort möglichst keine umfangreichen Dinge. Siehe Interrupt. Hier im 
beispiel ist es egal, später vielleicht aber nicht mehr.

Ansonst versuch mal ein paar Tips umzusetzen: [[Strukturierte 
Programmierung auf Mikrocontrollern]]

MFG
Falk

P S Aber alles in allem haben wir hier schon deutlich schlechtere 
Anfängerprogramme gesehen. ;-)
Gast
Hallo
Thomas
ichhab das kleine Teil vom Programm, was das Problemverursacht 
entfernet.Das komplete Programm ist im Anhang, wenn du nun versuchst zu 
compilieren wird dann nicht gehen.
Ich habe mit Festkommaarithmetik davor versucht hat aber leider nicht 
viel gebracht
Danke
Angehängte Dateien:
@  Rico (Gast)

>ichhab das kleine Teil vom Programm, was das Problemverursacht
>entfernet.

Sehr sinnvoll!! Augenroll

>Das komplete Programm ist im Anhang, wenn du nun versuchst zu
>compilieren wird dann nicht gehen.

U.a. weil die Funktion RiSchwellwert fehlt.

MFG
Falk

Antwort schreiben

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