avrlib: interrupt.h, vector table, jmp/rjmp

OP (Firma: @home) #7117974
Lesenswert?

Für die ISR Vector Table soll statt jmp rjmp benutzt werden, was in 
interrupt.h line 228 auch vorgesehen wurde, ABER nichts bewirkt.
Das Konstrukt dazu wird von gcc wohl ignoriert - es kann gelöscht werden 
und ergibt keine Fehlermeldung - Bug?

Gibt es andere Ideen/Lsg. von jmp zu rjmp innerhalb der Vector Table zu 
gelangen?

uC Target Atmega328p


Was war nochmal der Unterschied zwischen asm.s und asm.S files?
Gast #7118054
Lesenswert?

Apollo M. schrieb:

> Für die ISR Vector Table soll statt jmp rjmp benutzt werden

Also, wenn du meine Meinung hören willst: wenn du solche Problem hast, 
dann bist du definitiv in dem Bereich, wo du C komplett droppen 
solltest. Das macht's nur schwieriger.

In purem Assembler ist es viel einfacher, die Hardware des µC optimal zu 
nutzen. Jedenfalls bei so einfachen Target wie den AVR8.
OP (Firma: @home) #7127159
Lesenswert?

Meine Lösung für das Problem ...
AVR-VT (initial version) ist ein in Python realisiertes Program das die 
Vector Table patched. Lässt sich im Build Process als post-build Cmd 
aufrufen.

Kann durch Options für old/new AVR's verwendet werden hins. VT an 
beliebiger Adresse z.b. @Startadresse Boot Loader.
Angehängte Dateien:
Gast #7128200
Lesenswert?

Apollo M. schrieb:

> Meine Lösung für das Problem ...
[...]

OMG...

Hätte man's gleich in Assembler geschrieben, gäbe es das Problem erst 
garnicht, nichtmal eine vollständige Vektor-Tabelle gäbe es (die nur 
sinnlos Flash verschwendet), sondern nur die tatsächlich benutzen 
Vektoren wären mit Code gefüllt und zwar mit genau dem optimalen, der 
u.U. sogar noch ohne ein rjmp auskommt, weil der für die ISR nötige Code 
einfach in den Flash der "Vektortabelle" direkt reinpasst...

Noch ein paar Jahre, und du kommst auch dahinter, was wirklich die 
Lösung ist...
OP (Firma: @home) #7128273
Lesenswert?

c-hater schrieb:
> Noch ein paar Jahre, und du kommst auch dahinter, was wirklich die
> Lösung ist...

Du irrst dich, deine Baisics sind mir seit vielen Jahren bekannt! Ich 
programmiere auch native in Assembler seit Jahren.

Das Program AVR-VT ist eher eine Fingerübung für meine Python Praxis, 
weil ich noch andere Tools in Python schreiben möchte, die mir in ASM7 
fehlen und/oder mir teilweise als shell script vorliegen.

Für mich ist das alles nur wie Briefmarkensammeln - also ohne Ideologie 
und Verkrampfung.

Praktisch habe ich die zwei Vectoren in einer Minute händisch 
modifiziert, aber das Python Program hat mir 3 Tage gekostet.
Habe aber wieder etwas mehr Python verstanden und Spasss gehabt!

Das Program wurde weiter entwickelt und gefixt ...

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