ATtiny102/104 Instruktionssatz?

OP Persönliche Seite #7614260
Lesenswert?
• ▲
▼

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?

(Firma: 1984now) #7614282
Lesenswert?
• ▲
▼

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...

(Firma: 1984now) #7614347
Lesenswert?
• ▲
▼

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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren