Re: Interrupt, CAN Kategorie: Progr. Assembler, TaskingTools, OS (von Eltman - 10.10.2005 17:26) | ||
Als Antwort auf Re: Interrupt, CAN von André H. - 9.10.2005 12:06 | ||
| ||
Hi hab ich gemacht und funktioniert auch. Nu habe ich halt ein paar Probleme das mir die ISR nun meine Displayausgabe hin und wieder mal ein anders Zeichen schreibt. Eltman > Halo Eltman, > > > Ic hab mir einen CAN Treiber mit 29BIT ID in ASM geschrieben. > > Will aber noch das in Interrupt ausgelöst wird wenn ich eine > > MSG empfangen wurde. > > Die Sprungadresse muss ich ja im Interruptvektor eintragen, > > aber wie mach ich das ? > > Hat jemand schon mal was ähnliches gemacht. > > Beispiel währe super. > > Dazu mu�t Du das OS abändern. Die Interruptvektoren stehen am Anfang des OS. > Der Vektor befindet sich an Offset 0x100 und führt derzeit zu einer Interruptroutine an 0x85F6. > Dort sollte "FA00F685" stehen. > Steht Deine Interruptroutine beispielsweise in Segment 1 an Offset 0xabcd, mu�t Du > den Eintrag in "FA01CDAB" ändern. > > Die Zeile in der HEX von OSOPT V3.x sieht so aus: > :20010000FA00F685FA000401FA000801FA00AA1EFA001001FA001401FA001801FA001C0162 > und müsste dann folgenderma�en geänder werden: > :20010000FA01CDABFA000401FA000801FA00AA1EFA001001FA001401FA001801FA001C0162 > Die Prüfsumme am Ende jeder HEX-Zeile mu� nicht geändert werden, > da diese von meinem Download-Tool nicht geprüft wird. > > Wichtig ist, da� sich an dieser Stelle wirklich eine Routine befindet, da > es sonst einen Fehler gibt, wenn ein CAN-Interrupt erfolgt. > Also am besten zuerst die eigene Routine laden, bevor Du das gepatchte OS lädst. > > MfG André H. > | ||
Antwort schreiben Antworten: |