AVRGCC und Array an fester Position

Gast #77138
Lesenswert?
• ▲
▼
Hallo,
ich benutze den AVRGCC auf einem Atmega8515 und 32kb externem ram.
Jezt benoetige ich ein mittelgroßes Array. Da ich das im Programm nicht
so haufig brauche will ich es ins externe Ram schieben und das interne
fuer Stack und den Rest frei halten.

Aber wie sage ich jezt gcc das er das array x[] im xmem halten soll?
Mit Pointern will ich eigenlich nicht abrebiten, da sich sonst
garantiert irgendwann die Bereiche ueberschneiden und ich vor lauter
adressen den Ueberlick verliere. Unter C51 konnte man ganz gut mit der
at direktive arbeiten. Da aht einem der Compiler auch ne
Fehlermaldung ausgespuckt wenn sich zwei Bereiche schnitten

Tobias
Gast #77139
Lesenswert?
• ▲
▼
Außer einem Pointer fiele mir nur noch ein, daß Du eine separate
section dafür anlegen könntest, aber das geht für Variablenspeicherung
meiner Erinnerung nach nicht ohne Modifikation des linker script ab.

Du kannst natürlich auch malloc() nehmen, das kostet halt mehr Code.
Der Heap läßt sich mit Bordmitteln in den externen RAM verlegen.

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.