Forum: Mikrocontroller und Digitale Elektronik atmega 128 Flash Problem


von M. Н. (Gast)


Lesenswert?

Hallo Leute,

Ich habe schon seit einiger Zeit einen Atmega128, auf nem selbst 
erstellten Testboard. Klappt auch alles einwandfrei.

Aber ich habe ein Problem. Der Atmega 128 hat ja 128kB flash.
aber ich verstehe nicht wie der µC den verwaltet, Der Program-Counter 
(PC)
ist ja 16 bit lang/groß

also maximaler Wert vom PC irgendwas mit 65000 (sorry, hab keine Lust 
2^16 zu rechnen) Der Flash vom Atmega128 ist aber viel größer als diese 
65000-und-irgenwas Bytes. wie soll der µC auf die Speicherzellen 
oberhalb der "Maximal-Grenze" von PC zugreifen?

Selbes Problem mit LPM.

von spess53 (Gast)


Lesenswert?

Hi

128kByte ->131070 Byte ->

von Stefan E. (sternst)


Lesenswert?

M. H. schrieb:
> Aber ich habe ein Problem. Der Atmega 128 hat ja 128kB flash.
> aber ich verstehe nicht wie der µC den verwaltet, Der Program-Counter
> (PC)
> ist ja 16 bit lang/groß

Der Programmspeicher ist in Worten organisiert, nicht in Bytes. 
Dementsprechend enthält der Program-Counter auch eine Wort-Adresse. Er 
kann also 65536 Worte (zu je 16 Bit) adressieren.

> Selbes Problem mit LPM.

Siehe im Datenblatt das Register PAMPZ und den Befehl ELPM.

von M. Н. (Gast)


Lesenswert?

spess53 schrieb:
> Hi
>
> 128kByte ->131070 Byte ->

Sorry, aber ich versteh die Aussage nicht ganz...

128kB = 131070 Byte

ne??

Das ist doch größer als  65535 (habs jetzt ausgerechnet).

wie kann der µC darauf zugreifen. beim 65536. Byte ist doch Schluss!?!

von spess53 (Gast)


Lesenswert?

HI

Sorry, falscher Click

128kByte -> 131072 Byte -> 65536 Word -> 64K Program-Counter  passt.

LPM 128K -> 17Bit -> Z(16 Bit)+ RAMPZ0 (1 Bit)= 17 Bit passt.

MfG Spess

von M. Н. (Gast)


Lesenswert?

Was ist RAMPZ0 ?? wird das von LPM-Befehl außer dem Z-Pointer auch 
benutzt???

Und danke!!

von M. Н. (Gast)


Lesenswert?

sorry hab den beitrag von Stefan Ernst nicht gesehen.


ich habs jetzt verstanden....

Danke an alle :)

von spess53 (Gast)


Lesenswert?

Hi

>Was ist RAMPZ0 ?? wird das von LPM-Befehl außer dem Z-Pointer auch
>benutzt???

Ja. Befindet sich im RAMPZ-Register.

MfG Spess

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.