www.mikrocontroller.net

Forum: Compiler & IDEs Segmente in AVR GCC


Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe ein Design mit externen RAM und einem Memory mapped Device.
µC ist ein mega2561.

Also habe ich internes RAM von 0x200 bis 0x21ff. Mein externes RAM
ist von 0x2200 bis 0x7fff erreichbar. Mein Memory mapped Device ab 
0x8000.

Den Stack initialisiere nun ich auf 0x10ff im internen RAM. Ab 0x1100
definiere ich die .data Section. Die .bss Section beginnt dann 
automatisch am Ende der .data Section.

So weit kein Problem; es läuft so wie ich wünsche.

Nun möchte ich aber, dass für den Linker der Bereich ab 0x8000 tabu ist. 
Am allerliebsten wäre mir eine Fehlermeldung wie "section .bss not large 
enough" oder so. Ich habe testweise ab 0x8000 eine eigene Section 
definiert, dies hindert den Linker aber nicht daran, die .bss Sektion 
darüber hinaus wachsen zu lassen.

Kann man soweis vernünftig lösen oder muss ich selber im Listfile 
kontrollieren, ob meine .bss Sektion in den Bereich des memory mapped 
device läuft?


Gruß
Thorsten

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du müsstest ein angepasstes Linkerscript schreiben, da das
standardmäßige maximal 64 KiB RAM annimmt.

Da das Ganze aber ohnehin einen Programmierfehler bedeutet,
kannst du stattdessen auch nach dem Compilieren den Resourcen-
Verbrauch mit avr-size überwachen und das ggf. mit einem Script
zu einem Abbruch führen lassen.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nagut, die Kontrolle mit avr-size gestaltet sich recht einfach.

Vielen Dank für die Idee!

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.