Segmente in AVR GCC

Gast #603465
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
Moderator Persönliche Seite
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.

Antwort schreiben

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