Sw3.6-m9-1.2-Slajd3
Systemy uruchomieniowe wykorzystujące program monitora
Schemat blokowy przykładowego systemu uruchomieniowego wykorzystującego program monitora został przedstawiony na rysunku. System taki wyposażony jest w program monitora (tzw. debugger) umieszczony w pamięci ROM. Program ten pozwala na przyjmowanie i wykonywanie poleceń wprowadzanych przez użytkownika za pomocą klawiatury. Po restarcie systemu mikroprocesor wykonuje program monitora, który po inicjalizacji oczekuje na polecenia umożliwiające: załadowanie programu użytkownika lub danych do pamięci, wyświetlenie zawartości pamięci, wykonanie programu od zadanego adresu, wykonanie programu w trybie pracy krokowej, wstawienie pułapek lub wyświetlenie oraz zmianę zawartości rejestrów mikroprocesora.
Program użytkownika może znajdować się albo w pamięci RAM albo w pamięci EPROM. Umieszczenie programu w pamięci RAM pozwala na bezpośrednią poprawę ewentualnych błędów bez konieczności reprogramowania pamięci.
W początkowym etapie uruchamiania, wygodnie jest wykonywać program użytkownika w trybie pracy krokowej. Wykonanie w tym trybie całego programu mogłoby jednak trwać bardzo długo, dlatego też istnieje możliwość wykonania określonych fragmentów programu. W tym celu należy wstawić do programu pułapki, po czym uruchomić program od zadanego adresu określonego przez zawartość licznika rozkazów. Wówczas program użytkownika wykonywany jest aż do miejsca, w którym została umieszczona pierwsza pułapka. Po czym sterowanie przejmuje program monitora, co pozwala na sprawdzenie efektów działania wykonanego fragmentu programu, a następnie wykonanie kolejnego.
Podstawową wadą systemu uruchomieniowego wykorzystującego program monitora jest ograniczenie zasobów mikroprocesora, a tym samym jego możliwości. Ograniczenia te wynikają z dwóch powodów: konieczności umieszczenia programu monitora w przestrzeni adresowej danego mikroprocesora, co powoduje ograniczenie wielkości pamięci dostępnej dla programu użytkownika oraz konieczności zapewnienia komunikacji między użytkownikiem a programem monitora, co powoduje zablokowanie łącza szeregowego lub portu wejścia/wyjścia.