Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > > > > Hallo Peter; > > > > > > > > > > > > wird dies in naher Zukunft funktionieren ?! > > > > > > > > > > Ich habe deswegen schon schlaflose Nächte. :-) Nicht exakt so, aber so ähnlich wird es gehen. Kann aber > > > > > sein, das ich es noch kurz nach dem Release nachschiebe. Also von jetzt an ca. 5-6 Wochen. > > > > > Die Interruptroutinen werden dann den Assembler Code aufrufen, also ein "ret" und kein "reti" am Ende. > > > > > > > > > > Gruss Peter > > > > > > > > Hallo Peter, > > > > verstehe ich das richtig: Der Interrupt unterbricht nicht die Ausführung des Interpreters sondern > > > > der Interpreter Pollt weiterhin den Interrupt und ruft dann eine Assemblerroutine auf? Falls es so wäre > > > > würden weiterhin Echtzeitanforderungen nicht realisierbar sein > > > > > > Nein das verstehst Du nicht richtig. Die Interruptroutine springt dann direkt in die Assemblerroutine und > > > bypassed den Interpreter. Nur wie ich die Adresse der Assemblerroutine sauber in einen function pointer > > > in der Interruptroutine gebracht bekomme, lässt die Anzahl meiner grauen Haare weiter steigen. > > > > > > Gruss Peter > > > > Hallo Peter, > > ich vermute mal, das du für den Assembler Teil Speicherbereiche festlegts für Code und Daten. Dieser > > kollidert nicht mit deinem Interpreter / Bytecode Bereich. Somit steht doch diese Einsprungadresse fest > > und könnte mit Irq_SetVect(...) in das Interruptregister bzw. die Sprungtabelle eingetragen werden. > > So habe ich es bei einem 18186 Projekt gemacht ich kann nur leider nicht sagen, ob es beim ATMEL > > auch so geht. > > Viele Grüße > > Jo > > Der Bytecode Compiler übersetzt zuerst das Hauptprogramm. Anhand der der Länge des Bytecodes > wird die Org Adresse des Assembler Codes ermittelt. Der Bytecode Compiler erstellt eine Textdatei > mit dem Namen und Adressen der Assembleraufrufe im Bytecode. Der Assembler erstellt neben > dem Object auch eine mapping Datei mit den Adressen der generierten Assemblerroutinen. Die mapping > Datei und die Textdatei mit Namen und Adressen werden eingelesen und die IDE patcht in einer Art > "Linker" die Assembler Adressen in den Bytecode. Alles sehr dynamisch. > > Es gibt nur leider noch keinen Mechanismus um die Adressen der Assemblerroutinen übergeben zu > können. Dafür muß ich noch den "Linker" in der IDE kräftig aufbohren. > > Gruss Peter > > > > > > > > > > > > > > > > Viele Grüße > > > > > > > > Jo > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > cc: > > > > > > > > > > > > void start $asm("start")(void); > > > > > > > > > > > > void main(void) > > > > > > { > > > > > > Irq_SetVect(INT_1,start); > > > > > > } > > > > > > > > > > > > > > > > > > asm: > > > > > > > > > > > > Start: ;Irgendwas > > > > > > > > > > > > reti > > > > > > > > > > > > > > > > > > Gruß Michael > > > > > >