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... :-)
Hi, das Programm wird direkt aus dem Flash ausgeführt, die AVRs können auch kein Programm im Ram ausführen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.