LD, LDD, ST und STD im AVR.

Gast #109125
Hi!

Zu den Befehlen LD, LDD, ST und STD steht in der Hilfe von AVR-Studio
"Note that only the low byte of the Y pointer is updated in devices
with no more than 256 bytes data space. For such devices, the high byte
of the pointer is not used by this instruction and can be used for other
purposes."

Seh ich das richtig, das bei zugriffen auf den SRAM, wenn dieser nicht
größer als 256 Byte ist wie bei dem ATTiny26, das High-Byte in XH
(R27), YH (R29) und ZH (R31) weder berücksichtigt noch verändert wird
wie z. B. durch LD r16,y+?

Gruß
Andi
#109128
Das geht sogar soweit, daß auch der LPM r0,Z+ nicht ZH verändert, obwohl
er es müßte.

Da haben bei Atmel wohl einige Leute ganz schön getrieft.

Naja, inzwischen wurde der Fehler "behoben", indem dieser Befehl
einfach wieder aus dem Datenblatt genommen wurde :-(


Peter
Gast #109129
Das mit dem LPM ist mir bereits bekannt.
Allerdings gibs LPM r0,Z+ laut der Hilfe sowieso nicht zum Tiny26 bzw.
"das Resultat ist undefiniert".
Wenn natürlich wenigstens das low-Byte hochgezählt werden würde, könnte
man LPM r0,Z+ doch einsetzen wenn man sicher ist, das die Daten im Flash
sich nur in einer 256Byte-Seite befinden?

Gruß
Andi
Gast #109130
Hi...

Dann erhöhe ich Z aber lieber per ADIW und nutze LPM ohne Parameter
(wie bei den Classic-AVRs), kostet ein Wort Code mehr, funktioniert
aber bei allen Typen.

...HanneS...
Gast #109131
Das mit dem sicheren ADIW statt LPM rd,z+ ist schon klar aber wenn man
Code-Optimierung zwecks Platzmangel, weil man Anfangs wild drauf los
geprogt hat und nun der Platz ausgeht, sucht man halt nach
alternativen.

Gruß
Andi

Antwort schreiben

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