Monitorprogramm?

Gast #11482
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...
Gast #11483
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.