Frage zum Instruktionssatz von ATtiny102/104: Im neuesten Datenblatt von Atmel von 10/2016 sind im Abschnitt "25. Instruction Set Summary" u.a. folgende Befehle gelistet: * ADIW, SBIW * LDD, STD Und in "8.7. The X-register, Y-register, and Z-register" wird "indirect with displacement" Adressierung genannt: https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42505-8-bit-AVR-Microcontrollers-ATtiny102-ATtiny104_Datasheet.pdf Das scheint nich korrekt zu sein, denn die Codierung der 16-Bit Instruktionen LDS und STS überschneidet sich mit denjenigen für LDD und STD: Alle haben 0xa als höchstes Nibble, wobei bei den normalen Cores mit 32 GPRs Bit 13 Teil des Offsets ist. Siehe zum Beispiel wie Binutils die Instruktionen codiert: https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=include/opcode/avr.h#l289 LDD und STD scheinen also Tipp- oder Kopierfehler aus Datenblättern zu normalen AVRs zu sein? Für ADIW / SBIW finde ich keine Überschneidungen; aber dabei handelt es sich wohl auch um Fehler im Datenblatt?
:
Bearbeitet durch User
Johann L. schrieb: > Aber dabei handelt es > sich wohl auch um Fehler im Datenblatt? Ja. Das ist Coreversion "AVR8L_0". Wie auch die Tinys 4, 5, 9, 10, 20, 40. In älteren DBs steht's noch richtig (ich habe z.B. eins für den Tiny20 von 2014, immerhin schon im farbigen Design), später wurde es offensichtlich zumindest bei einigen Teilen verschlimmbessert. Aber häh: mit den Teilen würde ich mich allenfalls abgeben, wenn ich noch viele tausende davon rumliegen hätte und eine Anwendung, in die die reinpasssen...
> Im neuesten Datenblatt von Atmel von 10/2016 sind > im Abschnitt "25. Instruction Set Summary" u.a. > folgende Befehle gelistet: > * ADIW, SBIW > * LDD, STD Schon, aber dahinter steht doch "N/A"!? Und der Abschnitt 8.7 - nun ja ...
S. L. schrieb: >> Im neuesten Datenblatt von Atmel von 10/2016 sind >> im Abschnitt "25. Instruction Set Summary" u.a. >> folgende Befehle gelistet: >> * ADIW, SBIW >> * LDD, STD > > Schon, aber dahinter steht doch "N/A"!? Ja, tatsächlich, das habe ich (und wohl auch Johann) komplett übersehen. Aber wer sucht auch schon nach dieser Information in einer Spalte, deren Kopf mit dem Bezeichner "#Clocks" beschriftet ist? Nö, wenn die Instruktion nicht verfügbar ist, dann hat sie in der Summary einfach nicht aufzutauchen. Früher ging das doch auch mit dieser einfachen und einsichtigen Logik. Aber: in den neuesten DBs gibt's ja nicht mal mehr eine Summary. Statt dessen den Hinweis, man möge in der allgemeinen Instruction Set Reference nachsehen. Und dort wird es endgültig sehr spannend, herauszufinden, ob eine konkrete MCU eine konkrete Instruktion (und ggf. auch noch eine bestimmte Ausprägung davon) unterstützt und wie viel Takte die dort genau braucht. Die spinnen, die MicroChip-ler...
S. L. schrieb: >> * ADIW, SBIW >> * LDD, STD > > Schon, aber dahinter steht doch "N/A"!? > > Und der Abschnitt 8.7 - nun ja ... ahhh ja. Dann passt ja alles zusammen :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.