Forum: Compiler & IDEs Test.elf section `.text' will not fit in region `text'


von Alex (Gast)


Lesenswert?

Hallo zusammen,

ich hocke hier grad an einem Code und hab ein Problem, welches ich 
seither noch nie erhalten habe.

Ich muss dazu sagen, dass ich seit kurzem erst mit AVR 5.0 arbeite und 
damit noch nicht so ganz zurecht komme.

Also hier erstmal mein Code:

1
// Deklarationen ==============================================================
2
3
// Festlegung der Quarzfrequenz
4
5
#ifndef F_CPU          // optional definieren
6
#define F_CPU 18432000UL    // MiniMEXLE mit 18,432 MHz Quarz  
7
#endif                
8
9
10
// Include von Header-Dateien
11
12
#include <avr/io.h>        // I/O-Konfiguration (intern weitere Dateien)
13
#include <stdbool.h>       // Bibliothek fuer Bit-Variable
14
#include <avr/interrupt.h>    // Definition von Interrupts
15
#include <util/delay.h>      // Definition von Delays (Wartezeiten)
16
#include "lcd_lib_de.h"      // Header-Datei fuer LCD-Anzeige
17
18
19
// Makros
20
21
#define  SET_BIT(PORT, BIT)  ((PORT) |=  (1 << (BIT))) // Port-Bit Setzen
22
#define CLR_BIT(PORT, BIT)  ((PORT) &= ~(1 << (BIT))) // Port-Bit Loeschen
23
#define TGL_BIT(PORT, BIT)   ((PORT) ^=  (1 << (BIT))) // Port-Bit Toggeln
24
25
26
// Konstanten
27
28
#define ENABLE    7
29
30
int i;
31
int x;
32
33
34
int main(void)
35
{
36
    
37
  x=0;
38
  i=0;
39
  
40
  while(1)
41
    {
42
        
43
  char text[22]="  Treppenbeleuchtung  ";  // Text zum Schieben
44
  char schieben[16]="                ";  // Schieberegister
45
46
  {
47
  for(i=0; i<16; i++)        
48
    {
49
      if(i==15)
50
      {
51
        schieben[15]=text[x];    
52
      }
53
      else
54
      {
55
        schieben[i]=schieben[i+1];
56
      }
57
    }
58
  
59
  lcd_gotoxy(1,0);             // Cursor auf 2. Zeile, 1. Zeichen
60
  lcd_putstr("text[x]");        // Ausgabe Festtext: 16 Zeichen 
61
  lcd_gotoxy(0,0);
62
  lcd_putstr("-  Projekt 14  -");
63
  x++;
64
    if(x==22)
65
    {
66
      x=0;
67
      i=0;
68
    }
69
  _delay_ms(500);          // Alle 500ms um eins Schieben
70
  }
71
    }
72
}


Ich benutze einen ATMEGA88 und die lcd_lib ist im Programmordner 
eingefügt.


Zusätzlich zum Fehler Test.elf section '.text' will not fit in region 
region 'text' ; hat er scheinbar noch ein Problem:

#warning "Compiler optimizations disabled; functions from <util/delay.h> 
won't work as designed"  d:\programme\avr studio 5\avr 
toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h

Die delay.h ist doch aber richtig eingebunden, oder was meint er damit?


Wäre schön ein paar Antworten und Vorschläge von euch zu hören.

Bis dahin schon einmal vielen Dank im Voraus.


Gruß Alex

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Alex schrieb:
> Die delay.h ist doch aber richtig eingebunden, oder was meint er damit?

Steht doch da: "Compiler optimizations disabled".

Aktiviere die Compiler-Optimierungen, und erstens werden deine Delays
wieder funktionieren, zweitens wird dein Code auch wieder passen.

Danach schreibste Atmel noch einen Bugreport, dass sie doch bitteschön
die Optimierungen standardmäßig einschalten mögen, auch für den
Debug-Build.  Code für einen (Semi-)RISC-Prozessor ohne aktivierte
Compiler-Optimierungen zu bauen, ist ziemlicher Unfug.

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
Noch kein Account? Hier anmelden.