mikrocontroller.net

Forum: Compiler & IDEs Woher kennt der GCC die Flash-Größe? (ATmega168 geht nicht


Autor: Nikias Klohr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich benutzte das EClipse-Plugin mit GCC. Bisher hab ich einen ATMega8
verwendet. Jetzt kratze ich mit meinem Projekt an der 8K grenze und hab
mir den ATMega168 geholt. Nachdem ich meine Interupts, die beiden
mcu-Werte auf atmega168 gestellt und ein paar Register angepasst habe,
wollte ich compilieren.
Jetzt bekomme ich aber mit dem selben Programm, das vorher noch in die
8K gepasst hab, einen "region text is full" Fehler beim linken!
Woher weiß der Compiler/Linker eigentlich wie viel Flash der Controller
hat? Steht das irgendwo?

Woran könnte das liegen? Komme einfach nicht drauf.

Vielen Dank schonmal,
Nikias

Autor: Wolfgang Horn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, Nikias,

"Woher weiß der Compiler/Linker eigentlich wie viel Flash der
Controller
hat? Steht das irgendwo?"

Ja. In der <iom168.h> findest Du die Zeile "#define FLASHEND
0x3FFF"

Was den Opcode so aufblähen könnte, da bin ich überfragt.


Ciao
Wolfgang Horn

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist die Region "text" nicht das RAM?

Autor: Nikias Klohr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Wolfgang: Also ich bin mir sicher dass der Linker nicht das FLASHEND
Makro verwendet. Das ist nur zum eigenen Gebrauch in deinem Programm da
drinn. Ich dachte er müsste irgendendwo ne lookup table haben für die
ganzen mcu-Typen.

@Rufus: Hmmmm....könnte das sein? Kann das irgendwer bestätigen?
Wäre es denkbar...dass durch eine größere Registergröße mehr Ram
verbraucht wird, und die 1K nicht mehr reichen?

Gruß,
Nikias

Autor: Nikias Klohr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So...habs rausgefunden!
In der map file stand die ganze Zeit das der Linker nur von 8K
ausgegangen ist...
Jetzt hab ich dem Linker auf verdacht hin einfach mal den Parameter
"-mmcu=atmega168" übergeben -> Alles geht!
Denke das ist ein Fehler im Eclipse-Plugin, der müsste das dem Linker
eigentlich noch mitteilen.

Gruß,
Nikias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.