Programm mit Inline-Assembler: Fehler beim kompilieren

OP #5722802
Lesenswert?
• ▲
▼
Hallo,
ich bin gerade dabei ein Programm zu schreiben mit dem sich der AtTiny85 
selbst programmieren können soll. Um u.a. den Z-Pointer richtig zu 
setzen brauche ich (Inline-)Assembler. An diesem Punkt scheitere ich 
derzeit jedoch noch. Genauer: Die Z-Pointerregister(r30/r31) richtig zu 
setzen, und die Programmdaten in den Registern r00 und r01 
bereitzustellen. Ich bin, für den Inline-ASM bisher nach folgendem 
"Kochrezept" vorgegangen: 
https://rn-wissen.de/wiki/index.php?title=Inline-Assembler_in_avr-gcc#Zugriff_aufs_SRAM

Mit dem Code:
1
  asm volatile(
2
    
3
    "ld r30,Adr_MSB \n\t" 
4
    : "=r" (...)
5
  );

 kompilieren will zeigt(e) er mir entweder den Fehler "expected 
primary-expression before '...' token" oder
"undefined reference to 'Adr_MSB' " (wenn ich statt '...' 'Adr_MSB' 
geschrieben hatte).

So wirklich kann ich mir die Fehler nicht erklären, es ist allerdings 
auch schon etwas länger her wo ich Assembler benutzt habe.

Mit dem Code
1
  asm volatile(
2
    
3
    "ld r30,Adr_MSB \n\t" 
4
    : "=r" (Adr_MSB)
5
    "ld r31,Adr_LSB \n\t"
6
    : "=r" (Adr_LSB)
7

8
    "ld r00,DataLOW \n\t"
9
    : "=r" (DataLow)
10
    "ld r01,DataHIGH \n\t"
11
    : "=r" (DataHigh)
12

13
  );
bekomme ich derzeit den Fehler: " expected ')' before string constant " 
und Zeile "ld r31,Adr_LSB \n\t"  ist rot markiert. Die Variablen 
Adr_MSB, Adr_LSB, DataLow und DataHigh sind global bekannt und vom Typ 
char.

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.