Forum: Mikrocontroller und Digitale Elektronik AVR Speicheaufteilung ?


von Wally W. (wally234)


Lesenswert?

Betrifft hier ATmega328p (arduino)

Kann man sich mit avrdude oder ggf. anderen tools (Linux)
anzeigen lassen wo genau der Bootloaderbereich liegt und
wie gross er ist, oder geht das nur über die fuses -
also fuses lesen, Datenblatt suchen, etc. etc. ?

von Timmo H. (masterfx)


Lesenswert?

Der Bootloader-Bereich ist eine fixe Adresse. Und die steht im 
Datenblatt. Beim Xmega ist sie via BOOT_SECTION_START definiert

: Bearbeitet durch User
von Bestromer (Gast)


Lesenswert?

...hmm, mit den Fuses stellt man den Bootloader-Bereich halt ein welcher 
dann für die Bootloader-Software zur Verfügung steht....verstehe jetzt 
Dein Problem nicht ?
Wenn man wissen möchte welcher Bereich eingestellt ist, liest man die 
Fuses halt mit dem Programm seiner Wahl aus...

von Wally W. (wally234)


Lesenswert?

ich dachte den Bootloaderbereich kann über BOOTSZ0 und BOOTSZ1 der hfuse 
einstellen. Und wenn der BL bündig am Ende liegt verändert sich dadurch 
die Startadresse - oder lieg eich da völlig daneben ?

von Oliver S. (oliverso)


Lesenswert?

Stimmt. Also lies die Fuse aus, und schau im Datenblatt nach, welche 
Adressbereiche zu der Einstellung gehören.

Oliver

von Wally W. (wally234)


Lesenswert?

ist das jetzt ein Befehl ?

Die Frage war, ob man sich das anzeigen lassen kann, um sich die 
Wühlerei in den Datenblättern zu sparen und sich beim rechnen nicht 
immer wieder zu irren (z.B.  SET=0 und unSET =1)

von Tom E. (Gast)


Lesenswert?

Timmo H. schrieb:
> Der Bootloader-Bereich ist eine fixe Adresse. Und die steht im
> Datenblatt. Beim Xmega ist sie via BOOT_SECTION_START definiert

Die Frage war nicht, was im Datenblatt steht, sondern ob es möglich ist, 
die aktuelle Position des Bootloaderbereiches zu bestimmen, ohne die 
Fuses auszulesen. Und nichtmal die Fuses verraten, wie groß der genutzte 
Bereich tatsächlich ist.

Und nein, der Bootloader-Bereich liegt nicht an einer fixen Adresse, 
sondern meist gibt es mehrere Möglichkeiten, von denen über die Fuses 
eine gewählt ist.

von Thomas E. (thomase)


Lesenswert?

Wally W. schrieb:
> ich dachte den Bootloaderbereich kann über BOOTSZ0 und BOOTSZ1 der hfuse
> einstellen.
Darüber wird sie eingestellt.

> Und wenn der BL bündig am Ende liegt verändert sich dadurch
> die Startadresse - oder lieg eich da völlig daneben ?

Die ändert sich nicht. Der Bootloader wird ab dieser Startadresse 
installiert. Wieviel dann hinter dem Bootloader frei bleibt oder ob er 
überhaupt reinpasst, musst du selbst an der Größe des Programms ablesen. 
Eventuell bekommst du eine Warnung.

mfg.

von Wally W. (wally234)


Lesenswert?

Thomas E. schrieb:
> Die ändert sich nicht.

klar ! , "bündig am Ende" ist natürlich Blösinn

gibt es wirklich kein tool welches ein gesamtes Bild/Tabelle/Mapping des 
Speicher erzeugen kann ?

von g457 (Gast)


Lesenswert?

> gibt es wirklich kein tool welches ein gesamtes Bild/Tabelle/Mapping des
> Speicher erzeugen kann ?

Brain 1.0 kann das. Und Datenplatt ist ∗immer∗ die beste Anlaufstelle.

von Bestromer (Gast)


Lesenswert?

Wally W. schrieb:
> Thomas E. schrieb:
>> Die ändert sich nicht.
>
> klar ! , "bündig am Ende" ist natürlich Blösinn
>
> gibt es wirklich kein tool welches ein gesamtes Bild/Tabelle/Mapping des
> Speicher erzeugen kann ?

...Du kannst halt laut Spezifikation den gesamten Speicher auslesen, 
genauso wie es jedes andere Programm z.B. nach dem Flash-Vorgang macht 
um den Speicherinhalt auf Fehler zu prüfen....
Du kannst je nach Umfang Deiner Entwicklungsumgebung bestimmt auch alle 
Speicherbereiche auslesen und meist in einem TXT-File ASCII-HEX codiert 
speichern.

von Peter D. (peda)


Lesenswert?

Im AVRStudio Verzeichnis findest Du z.B. die "m328def.inc" und darin:
1
.equ  FIRSTBOOTSTART  = 0x3f00
2
.equ  SECONDBOOTSTART  = 0x3e00
3
.equ  THIRDBOOTSTART  = 0x3c00
4
.equ  FOURTHBOOTSTART  = 0x3800

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.