Forum: Mikrocontroller und Digitale Elektronik Monitorprogramm?


von Retro (Gast)


Lesenswert?

Hallo!

Ich hab schon öfters den Begriff "Monitorprogramm" gehört, aber wusste 
es nie zuzuordnen! Was ist/macht ein Monitorprogrammen, wofür ist es 
gut? Desweiteren habe ich gehört solch ein Programm ist in manchen 
Controllern schon einprogrammiert... wie bekomme ich es in diesem Falle 
wieder raus, wenn überhaupt? Einfach den Chip löschen? Oder existiert 
dieses Monitorprogramm paralell zu dem eigenen, bzw. ist zum 
flashen/betrieb nötig?

Ich kann es absolut nicht zuordnen...

von Matthias (Gast)


Lesenswert?

Hallo Retro,

Ein Monitorprogramm ist ein Programm, das auf dem Zielcontroller läuft, 
und das In-System-Debugging verarbeitet bzw. die Debug-Kommandos des 
Debuggers (meistens läuft dieser auf einem PC) verarbeitet.

D.h.: Das Monitorprogramm wird nur benötigt, wenn du den Zielcontroller 
debuggen möchtest. Daher auch der Begriff Monitor/Debugger. Dieses 
Monitorprogramm ist meines Wissens nach, nie in einen Controller nach 
Auslieferung programmiert, da man ja auch auf der PC-Seite das 
Gegenstück zum Monitor, den eigentlichen Debugger benötigt.

Während des Debuggen mit einem Monitor hat man den Monitor im 
Programm-Code-Flash/EPROM und das zu debuggende Programm im RAM. Dabei 
muss das Flash/EPROM sowie das RAM als Code-Speicher ansprechbar bzw. 
anspringbar (durch CALL und JMP Befehle addressierbar) sein. Den 
verbleibenden Teil des RAMs verwendet das zu debuggende Programm als 
RAM.

Daraus ergibt sich, daß während des Debuggens mit einem Monitor das 
Flash/EPROM nicht mehr als Codespeicher für das zu debuggende Programm 
zur Verfügung steht, und man benötigt daher (viel) mehr RAM während des 
Deguggens als man für das zu deguggende Programm alleine benötigt.

Die Verwndung eines Monitor/Debugger funktioniert nicht mit einem AVR, 
aus folgenden Gründen:
1. es steht zu wenig RAM (zumindest bei den kleinen AVR's) zur Verfügung
2. das RAM ist nicht anspringbar (durch CALL und JMP Befehle 
addressierbar)

Bei einigen bzw. neuen AVR-Megas, gibt es eine sogenannte 
"Self-Programming" - Funktion, mit dieser kann man das Flash zur 
Laufzeit verändern, evtl. ist hierdurch die Verwendung eines 
Monitors/Debuggers möglich, dies hat aber meiner Meinung nach folgende 
Nachteile:
1. Das Verändern/Beschreiben des Flashs dauert viel länger als bei einen 
RAM => Monitor wird sehr langsam laufen
2. Ein Flash ist ca. 100000...300000 mal beschreibar => nach kurzer 
Verwendung eines Monitors ist das Flash defekt/nicht mehr beschreibar


Reicht dir diese Erläuterung zum Begriff "Monitor"?


Gruß Matthias

von Retro (Gast)


Lesenswert?

Super, danke für die explizite Erklärung!

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.