Variable aus struct in AVR-GCC assembler

OP #284981
Lesenswert?
• ▲
▼
Hallo allerseits!

Ich habe folgende Zeile in meinem avr-gcc Assembler file (*.S) meines
C-gemixt-mit-Assembler-Projekts geschrieben:

LDI  r30, hi8(RDSEnc_Biphase.cCurrentGroup)

Das hat jedoch nicht funktioniert, und so ist mir aufgefallen, dass ich
zwischen den Klammern von hi8() oder lo8() keine Variable aus einem
struct nehmen kann, da ich ansonsten einen Fehler kriege. Ist das ein
bekanntes Problem? Habe ich irgend etwas übersehen? Oder gibt's da
eine andere Lösung?

Merci für deine Hilfe

Fab
Gast #284982
Lesenswert?
• ▲
▼
Hi Fab,

hi8() und lo8() sind avrggc spezifische assembler-operatoren. Diese
liefern die oberen bzw. unteren 8 Bit eines 16Bit-Wertes. Nachdem du
deiner Variable 'cCurrentGroup' das Prefix 'c' verpasst hasst, geh
ich mal davon aus das sie vom Datentyp char sind. Dann ist die
Fehlermeldung berechtigt.

Du solltest halt mal ein wenig mehr von deinem Code zeigen. Hilft so
manchmal beim Helfen.
OP #284983
Lesenswert?
• ▲
▼
Hallo!

Ja das leuchtet mir eigentlich soweit ein.
Richtig bei "cCurrentGroup" handelt es sich um einen char, jedoch
habe ich diesen Namen nur als Platzhalter genommen. Bei dem
eigentlichen Situation war die Variable ein Pointer "unsigned char
*pcBlaBlaBla" (die ja 16bit hat!). Was noch dazu kam, im struct hat es
nicht funktioniert und als ich der gleiche Typ von Variable dann separat
(nicht in einem struct) deklariert und verwendet hatte, hat's
funktioniert!

Antwort schreiben

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