Forum: Mikrocontroller und Digitale Elektronik ATMEGA8 & PIC18Fxxxx: Speicher-Bereiche


von Sven Scholz (Gast)


Lesenswert?

Hallo,

ich habe eine grundlegende Frage zu Angaben aus den Datasheets ATMEGA8 
und PIC18Fxxxx.

Folgendes ist zu lesen:
ATMEGA8
---------
SRAM: 1024 Bytes
EEPROM: 512 Bytes
FLASH PROGRAM MEMORY: 8k Bytes

PIC18Fxxxx
---------
SRAM: 1526 Bytes
EEPROM: 256 Bytes
FLASH PROGRAM MEMORY: 32k Bytes


Mir ist nicht ganz klar, auf welchem Speicher der Controller arbeitet, 
wenn das Programm abgearbeitet wird. Meine Vermutung ist, dass er den 
auszuführenden Code im Zwischengedächtnis, also im SRAM hält. Direkt mit 
Daten aus dem FLashSpeicher wird er wohl kaum arbeiten können, zumal 
Lese-Zugriffe Blockweise geschehen. Es ist aber ja so, dass die 
Applikation zuerst geflasht wird, also im Flashspeicher steht. Das würde 
bedeuten, dass ganz am Anfang, also nach einem Reset zuerst der 
SRAM-Speicher mit Code aus dem Flashspeicher gefüllt wird und dann die 
Ausführung startet. Wenn der ProgramCounter dann hochläüft, etwa 
PC=0x100 müsste der entsprechende Block aus dem FlashSpeicher 
nachgeladen werden. Oder wie funktioniert das?

Auf dem PIC kann ich doch Applikationen, die eine Größe von bis zu 
32kByte haben, laufen lassen oder wird der SW-Umfang vom SRAM Speicher 
begrenzt?

Ihr seht, ich habe an dieser Stelle Nachholbedarf.
Bitte daher um eure Hilfe. Vielen DANK.

PS: Hoffentlich ist überhaupt klar geworden, auf was ich hinaus will... 
:-)

von Lutz (Gast)


Lesenswert?

Hi,
das Programm wird direkt aus dem Flash ausgeführt, die AVRs können auch 
kein Programm im Ram ausführen.

von ... .. (docean) Benutzerseite


Lesenswert?

sowohl der RAM als auch der Flash können Probleme bereiten...

Das Programm liegt im Flash + (alle) Variablen mit ihren Startwerten + 
Bootloader wenn vorhanden

Zur Laufzeit liegen die Variablen im RAM + häufig der Stack und noch 
paar andere Sachen

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.