Hallo, ich habe für den ATXmega32A4 und den ATXmega128A3 bereits erfolgreich den Bootloader xboot* im AVR-Studio angepasst. Bislang war eigentlich immer nur eine Zeile notwendig, die in den "Project Options" bei den "Linker Options" (über "Custom Options" zu erreichen) angepasst werden müsste. ATXmega32A4: -Wl,--section-start=.text=0x8000 ATXmega128A3: -Wl,--section-start=.text=0x20000 Für den ATXmega64A3 hätte ich jetzt folgende Einstellung erwartet: ATXmega32A4: -Wl,--section-start=.text=0x10000 Damit reagieren die Interrupts aber nicht mehr, die im Bootloader-Code mit PMIC.CTRL = PMIC_IVSEL_bm in den Bootloader-Bereich gemappt werden. Lösche ich die Zeile, reagieren die Interrupts, aber das Schreiben der Applikation in den entsprechenden Bereich schlägt fehl (Controller reagiert nicht mehr nach Sprung in die Applikation). Ich bin bislang noch nicht wirklich tief in die Materie eingetaucht und bei diesem Problem fehlt mir auch irgendwie der Ansatz. Für sachdienliche Hinweise wäre ich sehr dankbar. *) http://code.google.com/p/avr-xboot/
Ok, ich beantworte mir die Frage einmal selber: Die Linker-Settings sind korrekt, das Problem lag woanders: Vor dem Interrupt-Mapping wurde der Takt eingestellt und dabei ebenfalls auf das einsprechende CTRL-Register zugegriffen mit einem CCP = CCP_IOREG_gc; vorher. Wenn jetzt das CCP = CCP_IOREG_gc; für das Interrupt-Mapping direkt hinter dem Takt-Setzen kommt, wird es scheinbar nicht ausgeführt, mit einer Pause dazwischen geht es hingegen...
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.