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?
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.
Die Vektortabelle steckt in .../avr/lib/avr5/crtatmega328p.o. Das müsstest du entsprechend anpassen. Oliver
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.
:
Bearbeitet durch User
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...
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 ...
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.