Forum: Mikrocontroller und Digitale Elektronik Tiny 4/5/9/10 und ICALL


von ICALLer (Gast)


Lesenswert?

Hallo,

weiß jemand von euch, welchen Sinn es macht, bei den "ganz kleinen 
Tiny´s" (4-5-9-10) ICALL zu haben?
Der Tiny 13A hat auf jeden Fall KEIN ICALL ! Wozu sollte das bei den 
ganz kleinen gut sein?

von Karl M. (Gast)


Lesenswert?

Hallo,

was hat die Frage mit einem attiny13 zu tun?

ICALLer schrieb:
> weiß jemand von euch, welchen Sinn es macht, bei den "ganz kleinen
> Tiny´s" (4-5-9-10) ICALL zu haben?
> Der Tiny 13A hat auf jeden Fall KEIN ICALL ! Wozu sollte das bei den
> ganz kleinen gut sein?

Ein attiny10 hat die Befehle man im Datenblatt findet und mit denen kann 
ich dann arbeiten, resp. sie benutzen.

Geht es Dir um die Funktion von ICALL, die Beschreibung findet man u.a. 
im Datenblatt des attiny10 ab S198f.

ICALL Indirect Call to (Z) PC(15:0) ← Z, PC(21:16) ← 0 None 3/4

Es ist eine indirekter Funktionsaufruf über das Register Z.

Mit einer Hochsprache programmiert würde man Call - Backfunktion dazu 
sagen.

Einem 16 Bit Pointer wird eine Funktionsadresse zu gewiesen.

Alles klar ?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Karl M. schrieb:
> Mit einer Hochsprache programmiert würde man Call - Backfunktion dazu
> sagen.
Es hieße eher Callback-Funktion. Aber das hat mit einem indirekten 
Funktionsaufruf auf Maschinenebene bestenfalls tertiär etwas zu tun...
https://de.wikipedia.org/wiki/Rückruffunktion

von Axel S. (a-za-z0-9)


Lesenswert?

ICALLer schrieb:
> weiß jemand von euch, welchen Sinn es macht, bei den "ganz kleinen
> Tiny´s" (4-5-9-10) ICALL zu haben?

Ich verstehe den Sinn der Frage nicht. Die Funktion des ICALL Opcodes 
scheint dir ja klar zu sein. Ansonsten hat ein Maschinenbefehl 
natürlich keinen "Sinn" (und machen tut er erst recht keinen) sondern 
er hat einen mehr oder weniger großen Nutzen.

> Der Tiny 13A hat auf jeden Fall KEIN ICALL ! Wozu sollte das bei den
> ganz kleinen gut sein?

Was hat der Nutzen eines bestimmten Maschinenbefehls mit der "Größe" 
(woran auch immer du die festmachst) eines µC zu tun?

von ICALLer (Gast)


Lesenswert?

-> Die Frage bezog sich auf die Sinnhaftigkeit dieses Opcodes beim 
kleinsten Tiny, obwohl der 2.-Kleinste Tiny (13A) diesen eben NICHT hat.

Die Frage war, ob jemand versteht, wieso ICALL beim Tiny10 vorhanden, 
jedoch beim 13A eben NICHT vorhanden ist !

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

ICALLer schrieb:
> Die Frage war, ob jemand versteht, wieso ICALL beim Tiny10 vorhanden,
> jedoch beim 13A eben NICHT vorhanden ist !

Woher nimmst du die Aussage, dass der ATtiny13 kein ICALL hätte?

von ICALLer (Gast)


Lesenswert?

Da hab ich zuviel auf den Kollegen gehört und nicht im Datenblatt 
geschmökert !
Sorry & Korrektur: Atmel Tiny 13A HAT ICALL.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

ICALLer schrieb:
> weiß jemand von euch, welchen Sinn es macht, bei den "ganz kleinen
> Tiny´s" (4-5-9-10) ICALL zu haben?

Zumindest IJMP ist Verschwendung von Silizium.  Als IJMP-Ersatz ginge 
nämlich PUSH+PUSH+RET.  So hätten bestimmt noch ein man µm² gesparen 
werden können...

von 1234567890 (Gast)


Lesenswert?

Johann L. schrieb:
> Zumindest IJMP ist Verschwendung von Silizium.  Als IJMP-Ersatz ginge
> nämlich PUSH+PUSH+RET.  So hätten bestimmt noch ein man µm² gesparen
> werden können...

Hast du chon mal überlegt, wie die Schaltung im uC aussieht, also der 
Befehlsdekodierer und das zugehörige Steuerwerk?

Wenn es icall, push, ret usw. gibt, ist der zusätzliche Aufwand für ijmp 
nur noch sehr gering, also ist auch die Ersparnis sehr gering, wenn man 
es weglassen würde. Möglicherweise gibt es nicht mal eine Ersparnis.

Bevor du hier meckerst, solltest du einfach mal selber einen Prozessor 
entwerfen. Da wird dir auffallen, dass sich viele Teile der Strukturen 
für mehr als einen speziellen Fall nutzen lassen, weil sie sehr ähnlich 
sind. Das ist eine Frage der Optimierung.

von Peter II (Gast)


Lesenswert?

Johann L. schrieb:
> Zumindest IJMP ist Verschwendung von Silizium.  Als IJMP-Ersatz ginge
> nämlich PUSH+PUSH+RET.

außer wenn man schon bei 100% Stack Nutzung ist.

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
Noch kein Account? Hier anmelden.