Segmente in AVR GCC

Gast #603465
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

Antwort schreiben

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.

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.