zwei ISRs mit selben Code

Gast #2194316
Lesenswert?

>ISR_ALIAS(INT6_vect, INT5_vect);

Danke für den Hinweis:

Ich habs jetzt so gemacht:
1
ISR_ALIAS( INT5_vect, INT6_vect );
2
ISR      ( INT6_vect )
3
{
4
  ...

Das erzeugt zwar einen witzigen Jump auf die folgende Addresse, aber 
soll mal nicht stören:
1
@000000B2: __vector_6
2
114:      ISR_ALIAS( INT5_vect, INT6_vect );
3
+000000B2:   940C00B4    JMP       0x000000B4     Jump
4
@000000B4: __vector_7
5
116:      {
6
...


Vielen Dank.
Moderator Persönliche Seite #2194450
Lesenswert?

Matthias Lipinsky schrieb:

> Das erzeugt zwar einen witzigen Jump auf die folgende Addresse, aber
> soll mal nicht stören:
> [avrasm]
> @000000B2: __vector_6
> 114:      ISR_ALIAS( INT5_vect, INT6_vect );
> +000000B2:   940C00B4    JMP       0x000000B4     Jump
> @000000B4: __vector_7

Wenn der dich stört, dann solltest du beim Linken die Option

-Wl,--defsym=__vector_6=__vector_7

angeben.  Das ist zwar komplett unportabel, sollte dir aber den JMP
sparen. :-)
Gast #2194475
Lesenswert?

>>Guru schrieb:
>> Aber verdoppeln bräuchte man mit inline den Code ja auch nicht.

>Stefan Ernst schrieb:
>Nein? Zeig mal wie das gehen soll.

Nein. Zeig ich nicht. ;-) Nee, hast recht, falls Du das sagen wolltest: 
mit Inline wäre der Code natürlich doppelt.

Aber dann bleibt:
>Den kompletten ISR-Code doppelt haben, nur um 2 Takte zu sparen?
Warum nicht, falls es auf die zwei Takte für den Jump ankommt.

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