festlegen Speicheradresse der Variable WinAVR /C-ASM

Gast #411209
Lesenswert?
• ▲
▼
Hallo zusammen,
ich habe ein bestehendes ASM-Projekt in eine C-Umgebung eingebunden.
Hierbei nutze ich AVR-Studio/WinAVR und habe folgende Prinzip der
Variablenhandlings übernommen:

innerhalb des ASM-Files habe ich die Variablen bsp. mit

" .comm dVariable,1 "

definiert und im C-Code mit

" extern volatile uint8_t LED[2]; "

deklariert.

Funktioniert alles wunderbar; ich habe aber nun das Problem, daß im
Orginal alle Variablen feste Adressen und über ein Hostprogramm auch
direkt über diese angesprochen und verändert werden.
Nun habe ich die Möglichkeit per MAP-File die physikalische Adressen
herauszufiltern und 'hardgecoded' im Hostprogramm eingebe. Ist nicht
gerade elegant und ausserdem unsicher.

Hat jemand eine Idee oder Informationen darüber wie man dem
Compiler/Linker eine Adresse vorschreiben kann?

gruss herbert
Gast #411211
Lesenswert?
• ▲
▼
@rolf:
wie schon erwähnt muss ich einiges ändern, da das bisherige PC-Programm
(Steuerprogramm) mit fixen Speicheradressen des µC hantiert.

Gerade diesen Mehraufwand will ich ja vermeiden -- wäre halt gut ich
könnte den genutzten Variablen eine feste Adresse verpassen..

hab mal im ATMEL ASM Dokument, AVR Assembler User Guide, geschaut dort
kann man mit den folgenden Zeilen:
"
.data ; Start data segment
.org 0x160  ; Set SRAM address to hex 67
variable:.BYTE 1 ; Reserve a byte at SRAM
"
die Adresse fix vergeben. Leider funktioniert das in der
WINAVR-Umgebung nicht..

gruss herbert
Gast #411212
Lesenswert?
• ▲
▼
...wenn ich da im Map-File nachschaue setzt er mir 'variable' im
Codespeicher?!
Offensichtlich passen die PseudoOps '.data' mit der Segmentverwaltung
von WinAVR/C+ASM nicht zusammen.

wo gibt es dazu mehr Infos?
gruss herbert

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.