Guten Tag. Ich quäle mich gerade mit dem Datenblatt des ATmega32 herum und bin nun fast überzeugt, einen Fehler im Datenblatt gefunden zu haben. Der ATmega32 hat einen 32kByte Flashspeicher. Benutzt man einen Bootloader wirds etwas weniger. Link zum Datenblatt hier: http://www.atmel.com/Images/doc2503.pdf Nun sieht man ganz schön auf Seite 246, dass der Bootloader immer an das Ende des Flashspeichers geschrieben wird. Das heißt die Endadresse des Bootloaders müsste lauten: 0x7FFF = 32767 Im Datenblatt auf Seite 255 lese ich aber in Tabelle 99: 0x3FFF Ist das ein Fehler im Datenblatt oder habe ich einen Denkfehler?? Ausserdem steht dort für Bootsize 1024 words: 0x3C00 - 0x3FFF. Das sind aber dann nicht 1024 Worte, sondern 1024 Bytes. Also stimmt diese Angabe auch nicht oder? Bitte um Hilfe. :)
zu_faul_zum_einloggen schrieb: > Der Programmspeicher wird über WORD-Addressen angesprochen. Aha. Damit bedeutet also Adresse $3FFF = 0x3FFF*2Bytes = Das Byte 0x7FFE. So richtig?
zu_faul_zum_einloggen schrieb: > Der Programmspeicher wird über WORD-Addressen angesprochen. Es sei denn, man spricht ihn über LPM-Befehle an, dann wird er plötzlich byteweise adressiert. Konsistent ist das nicht.
Jörg Wunsch schrieb: > Es sei denn, man spricht ihn über LPM-Befehle an, dann wird er > plötzlich byteweise adressiert. > > Konsistent ist das nicht. Sehr gut für Einsteiger gemacht, damit diese so gut wie möglich durcheinander kommen. ^^ Könntest du mir an dieser Stelle bitte noch erklären was LPM und SPM Befehle sind? Ich danke. :)
ATmega32 schrieb: > Könntest du mir an dieser Stelle bitte noch erklären was LPM und SPM > Befehle sind? Ich danke. :) LPM: Load Program Memory SPM: Store Program Memory Ein im Flash befindliches Programm kann selbigen lesen und beschreiben. Steht aber auch im Datenblatt.
Hannilein schrieb: > Ein im Flash befindliches Programm kann selbigen lesen und beschreiben. > Steht aber auch im Datenblatt. Somit sind also LPM und SPM Befehle, die z.B. von einem Bootloader verwendet werden können. Richtig?
ATmega32 schrieb: > Somit sind also LPM und SPM Befehle, die z.B. von einem Bootloader > verwendet werden können. Richtig? Ja, aber auch von jedem anderen Programmteil.
Eumel schrieb: > Ja, aber auch von jedem anderen Programmteil. LPM kann überall benutzt werden, SPM nur aus dem Bereich, der als Bootloader deklariert worden ist (über die entsprechenden Fuses). Eine Ausnahme sind sehr klein ATtinys, die haben nur eine Fuse, mit der der SPM-Befehl überhaupt zugelassen wird, aber keinen dedizierten Bootloader-Bereich. @TE: Aber, wenn du "ATmega32" bist, dann solltest du das eigentlich wissen …
Jörg Wunsch schrieb: > Aber, wenn du "ATmega32" bist, dann solltest du das eigentlich > wissen … :D Mir ist einfach nichts besseres eingefallen. ;D Ich danke allen für die Infos!
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.