www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Monitorprogramm?


Autor: Retro (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Retro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super, danke für die explizite Erklärung!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.