Gast
#1575937
Hallo liebe Forumskollegen! Meine zugrundeliegende Hard/Software: Controller: AT90CAN128 Compiler: WINAVR IDE: AVR Studio 4.17 Mein Problem: Ich bin dabei einen CAN-Bootloader für den AT90CAN128 zu schreiben, jedoch habe ich noch ein gewisses Problem. Das Szenario sieht folgendermaßen aus: Ich habe zwei Programme welche in den AVR-geflasht werden. Das Hauptprogramm, welches ab Adresse 0 abgelegt wird, und den Bootloader, welcher über ein selbstständiges AVR-Studio Projekt erstellt wurde, und mittels Linker Kommando (-Wl,--section-start=.text=0x1E000) im Flashbereich des Bootloader abgelegt wird. Ich kann vom Hauptprogramm in den Bootloader und wieder zurück springen - kein Problem. Ich nutze derzeit im Bootloader die selbe CAN-Libary welche ich auch im Hauptprogramm verwende. (Ist derzeit einiges an unnötigem Code, aber weiß dass er wirklich funktioniert, da das Hauptprogramm mit diesem Code schon einige Monate im Einsatz ist und alles zufriedenstellend läuft). Das Problem ist nun folgendes: Wenn ich im Bootloader die Interrupts aktiviere und eine CAN-Nachricht an das Board sende, dann "hängt" das ganze und der AVR reagiert nicht mehr. Was könnte da das Problem sein? Da Bootloader und Hauptprogramm wirklich 2 komplett separate Programme sind, war ich bis jetzt der Meinung, dass auch jedes Programm seine eigene Interrupttabelle verwendet. Muss ich hier dennoch etwas umstellen? Ich habe schon einiges an Erfahrung in der AVR-Programmierung, nur im Bootloaderbereich bin ich noch etwas neu. Vielen Dank für Eure Hilfe! Max