Hi! Ich arbeite mit einem atxmega64a1 (laut Aufdruck Chip rev G). Zunächst habe ich avrdude gepatcht um xmega64 programmieren zu können (Einträge in avrdude.conf geadded). Das klappt auch soweit. Jett habe ich mir einen avr bootloader auf den xmega portiert (avrprog). Aus der App-Section heraus läuft der prinzipiell. Connecten/Lesen etc geht, nur SPM geht halt nicht da nicht aus Bootloader bereich ausgeführt. Dann habe ich versucht den Bootloader in die Bootloader Section zu kopieren. Leider sind die Angaben im Xmega Datenblatt (doc8067) ein wenig wiedersprüchlich. Dort steht er habe 64K Flash + 4K AppTABLEsection + 4K Bootloader. Es scheinen aber 64K inkl AppTable Section zu sein (macht ja sinn) Auf Seite 11 steht (dort in words, habs mal in byte umgerechnet): FLASH : 0x000000 - 0x007FFF APPTBL: 0x00F000 - 0x00FFFF BOOT : 0x010000 - 0x011000 Demnach wäre BOOT an adresse 0x010000 und ich müsste den Bootloader dahinkopieren. Als test habe ich ab 0x00000 ein blinkprogramm und ab 0x10000 den bootloader geflasht. Wenn ich jetzt aber fuse2 = 0xBF setze müsste doch der bootloader starten, oder hab ich noch was übersehen ? Leider tut er das nicht... Es startet immer das blinkprogramm unabhängig von fuse2 Ich muss dazusagen dass ich avrdude gepatcht habe um fuse* auch zu schreiben statt nur auszulesen bei den xmegas. Wenn ich fuse2 schreibe und zurücklese steht dort auch oxBF drin. Irgendwelche Tipps ?
Hallo Sssssss (bitte logg Dich mal ein, danke), eine Frage: * das Blinkprogramm oder der Bootloader enthalten Interrups? Wenn ja, musst Du diese umbiegen. * schreib als Test ein Blinkprg. mit SW Delay, das Du in den Bootbereich schreibst. Den Anfang des Flash (0x0000) lässt Du leer. Die Fuse musst auf Bootloaderbereich-Start stellen. Nach dem Einschalten muss das Ding blinken, sonst hat der Chip ein grundlegendes Problem (beim 128 waren es die Rev. < H die nicht korrekt liefen) Gruß Helmut
Hi! Hab meine Logindaten nicht mehr, geht doch auch so ;) Also ich hab inzwischen einen Windowspc organisiert und im Winavr getestet. Das Problem scheint beim gcc (linux) zu liegen! Wenn ich das File unter winavr/avrstudio compiliere und dann unter linux flashe funktioniert der bootloader! Sowohl das ausführen aus dem bootbereich als auch das flashen. -> beim Xmega64A1 mit rev. H funktioniert der bootbereich also! (war nicht ganz klar da die errata nur für den 128 ist) Das interessante ist dass der output asm code des unter Linux compilierten Files vom winavr unterscheided: In den Initroutinen in ctors_end etc nach dem setzen von SPH/SPL macht die winavr version noch ein OUT 0x38, r1 (r1 sollte 0 sein) OUT 0x39, r1 (r1 sollte 0 sein) ...und noch ein paar regs... Warum das passiert weiss ich nicht. Meine Vermutung ist dass irgendwas beim mitgeben der Linkeroptionen schiefgeht. Bei mir steht in der main.lss:
1 | Idx Name Size VMA LMA File off Algn |
2 | 0 .text 00000534 00003800 00003800 00000074 2**1 |
3 | CONTENTS, ALLOC, LOAD, READONLY, CODE |
4 | 1 .bss 00000080 00800100 00003d34 000005a8 2**0 |
Bei der Winavr version ist bei.bss LMA und VMA gleich. Irgendwas stimmt da nicht... Muss ich mir morgen in der Uni nochmal in ruhe ansehen, heut wars zu hektisch um zu suchen worans liegt. Gruss, Simon
Ssssss schrieb: > Hi! > > Ich arbeite mit einem atxmega64a1 (laut Aufdruck Chip rev G). > > Zunächst habe ich avrdude gepatcht um xmega64 programmieren zu können > (Einträge in avrdude.conf geadded). Das klappt auch soweit. > Hallo Simon Ich arbeite jetzt auch mit einem Xmega64A1 wie Sie. Die originale AVRDUDE v5.5 von WINAVR bzw. die von selbst kompilierte AVRDUDE v5.8 habe ich benutzt. Aber die beide melden den selben Fehler bei Verifikation, trotzdem die Einschreiben klappt. Eigentlich habe ich die Konfiguration für Xmega64a1 nach doc8067 in avrdude.conf hingefügt. Können Sie mir meinen Fehler zeigen, ggf. Ihre kompilierte AVRDUDE und avrdude.conf per Email an mich (anyu.dai@sphinx-electronics.de)schicken? Vielen Dank! mit freundlichen Grüßen Anyu
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.