Forum: Mikrocontroller und Digitale Elektronik Fehler im Datenblatt des ATmega32??


von ATmega32 (Gast)


Lesenswert?

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. :)

von zu_faul_zum_einloggen (Gast)


Lesenswert?

Der Programmspeicher wird über WORD-Addressen angesprochen.

von ATmega32 (Gast)


Lesenswert?

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?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von ATmega32 (Gast)


Lesenswert?

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. :)

von Hannilein (Gast)


Lesenswert?

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.

von ATmega32 (Gast)


Lesenswert?

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?

von Eumel (Gast)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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 …

von ATmega32 (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.