Hallo Leute, ich versuche grad den Artikel http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung#Schritt_4_-_Flashen_und_Ausprobieren_des_Bootloaders_2 durchzuarbeiten und nach einem ersten Erfolg kam auch schon die Ernüchterung. Am Anfang habe ich vergesser die Einprungadresse im Linker zu änern. Dadurch wurde der Code direkt ab 0x0000 geschrieben, nach Ausführen des Codes meldete sich natürlich der Bootloader über Putty. Dann wollte ich mal die richtige Adresse eingeben: Ich verwende einen Atmega162, und habe die Einsprungadresse wie im Artiekl erwähnt richtig ausgerechnet, so denke ich zumindest. Die Tabellen befinden sich im Datenblatt http://www.atmel.com/Images/Atmel-2513-8-bit-AVR-Microntroller-ATmega162_Datasheet.pdf auf Seite 236. Page size 64 Number of pages 128 128 Page (128 - 64) an Word-Adresse 0x1000, also Byteadresse 0x1000 * 2 = 0x2000. Wenn ich dann dem Linker mitteile -Ttext=0x2000 und dann den µC flashe erhalte ich nichts mehr auf der Console. Im Anhang sind noch die Fuseeinstellungen zum Bootbereich angegeben. Was hab ich falsch gemacht/berechnet?
Was steht bei den Fuses als Boot Startadresse? Und was hast du eingegeben?
bei den Fuses ( im Anhang) steht ja 0x1C00 und ich hab wohl 0x2000 aber ich habe auch 1C00 probiert, beide male kein Lebenszeichen in der Konsole Oder hab ich noch was anderes übersehen?
Das 0x1C00 ist die Word-Adresse. Die Toolchain will aber eine Byte-Adresse, also
1 | -Ttext=0x3800 |
Okay der kleine Bootloader ging rein und funktioniert, jetzt hab ich den richtigen kompiliert (mit Size Optimisation) und erhalte dann beim Brennversuch: avrdude: erasing chip avrdude: reading input file "bootloader.hex" avrdude: input file bootloader.hex auto detected as Intel Hex avrdude: ERROR: address 0x4010 out of range at line 129 of bootloader.hex avrdude: write to file 'bootloader.hex' failed Krieg ich den schon nichtmehr rein? Das wäre ja echt blöd
Chris tian schrieb: > Krieg ich den schon nichtmehr rein? Das wäre ja echt blöd Der ATmega162 hat, wie der Name schon sagt, 16kByte Flash, d.h. bei Byteadresse 0x3FFF bzw. Word-Adresse 0x1FFF ist Schluß. Und mit Start bei Word-Adresse 0x1C00 hast du schon die maximal Größe für den Bootloader (1024 Words lt. Table 93. Boot Size Configuration) eingestellt.
wohl den falschen Controller gewählt. Der Chip45 Bootloader funktioniert ja bei mir leider auch nicht richtig.
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.
