Xmega AVR AddressOperator nur für 16 Bit?

Gast #3686655
Lesenswert?
• ▲
▼
Hallo zusammen,

kann es sein, dass das Kaufmanns UND zur Ermittlung von Adressen nur 16 
Bit Werte liefern kann? Gibt es eine Möglichkeit, dass zu erweitern? Ich 
habe da gaaanz wage etwas mit HIGH und LOW in Erinnerung, was sich nicht 
auf die letzten 6 Register X,Y,Z bezog. Mir fallen keine passenden 
Keywörter zum suchen ein...

viele Grüße!
Gast #3687387
Lesenswert?
• ▲
▼
aus der pgmspace.h guckst du (also ich) hier:

#define pgm_get_far_address(var)                          \
({                                                    \
  uint_farptr_t tmp;                                \
                                                      \
  _asm_ __volatile__(                             \
                                                      \
      "ldi  %A0, lo8(%1)"           "\n\t"    \
      "ldi  %B0, hi8(%1)"           "\n\t"    \
      "ldi  %C0, hh8(%1)"           "\n\t"    \
      "clr  %D0"                    "\n\t"    \
    :                                             \
      "=d" (tmp)                                \
    :                                             \
      "p"  (&(var))                             \
  );                                                \
  tmp;                                              \
})

Da gabs schon sowas. Nur wenn ich es verwende, kann ich über den 
Debugger sehen, dass der Flash leer ist.
Gast #3687661
Lesenswert?
• ▲
▼
Das die Operation
#define pgm_get_far_address(var)
nicht funktioniert hat, hatte was mit dem Optimierungsgrad zu tun. Den 
hatte ich mal auf -O3 umgestellt, weil ich auf -Os im Debugger bei 
Funktionszeigerübergaben beobachten konnte.

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.