Sw3.6-m9-1.2-Slajd4
Systemy uruchomieniowe wykorzystujące emulację układową
Schemat blokowy przykładowego systemu uruchomieniowego wykorzystującego emulację układową został przedstawiony na rysunku. Emulacja układowa polega na włączeniu systemu uruchomieniowego w miejsce mikroprocesora uruchamianego systemu, za pomocą specjalnego układu sprzęgającego (tzw. sondy emulującej), zawierającego analogiczny mikroprocesor. Wówczas sterowanie przejmuje system uruchomieniowy umożliwiając jednoczesne wykonywanie programu i kontrolowanie aktualnego stanu mikroprocesora. System uruchomieniowy wykorzystujący emulacją układową ma stałą strukturę sprzętową, a emulacja żądanego mikroprocesora wymaga jedynie użycia właściwej sondy emulującej oraz zainicjowania w systemie odpowiedniego programu sterującego.
Sonda emulująca stanowi układ o konstrukcji zależnej od typu emulowanego mikroprocesora. Z jednej strony emuluje ona wszystkie sygnały mikroprocesora, wyprowadzając je bezpośrednio do podstawki mikroprocesora w uruchamianym systemie, z drugiej zaś wypracowuje sygnały magistrali II. Magistrala II jest odpowiednikiem magistrali I, z pominięciem sygnałów wzajemnej współpracy modułów: adaptera, komparatora stanów i śladowania.
Moduł adaptera realizuje przejście z magistrali II na buforowaną magistralę I, o organizacji umożliwiającej współpracę z pozostałymi modułami emulatora.
Moduł komparatora stanów zawiera dwa analogiczne układy rozpoznające stan magistrali adresowej, w określonym cyklu maszynowym. Moduł ten umożliwia wstawianie pułapek oraz warunkowe określenie trybu śladowania przebiegu programu.
Moduł śladowania przebiegu programu w czasie rzeczywistym pozwala na warunkowe zapamiętanie stanu określonej liczby cykli maszynowych. Zapamiętana informacja o jednym cyklu maszynowym obejmuje: adres, dane, rodzaj cyklu oraz stan linii wcześniej wybranych przez użytkownika. Możliwość deklaracji warunków i startu śladowania pozwala na efektywne śladowanie poszczególnych cykli maszynowych.
Moduł pamięci emulowanej stanowią bloki pamięci RAM, które mogą być dołączone do uruchamianego systemu mikroprocesorowego po zadeklarowaniu adresu początkowego i typu dostępu do bloku. Pamięć emulowana może być umieszczona w obszarze adresowym, w którym została już umieszczona pamięć uruchamianego systemu mikroprocesorowego. Wszelkie operacje w takim obszarze adresowym będą wykonywane tylko na pamięci emulowanej, co pozwala na szybkie testowanie poprawek programu użytkownika umieszczonego już w pamięci ROM. Można także przepisać program użytkownika z pamięci ROM do pamięci emulowanej, dokonać poprawek i przeprowadzić jego testowanie.
Oprogramowanie podstawowe systemu uruchomieniowego, w które wyposażony jest komputer nadrzędny, stanowi monitor systemowy oraz system operacyjny z biblioteką programów sterujących. Zestaw funkcji realizowanych przez program sterujący może obejmować: konfigurowanie pamięci, ładowanie, wyprowadzanie i modyfikację zawartości pamięci, ustalanie stanu początkowego mikroprocesora, wykonywanie programu w trybie pracy krokowej, wykonywanie programu w czasie rzeczywistym z zadeklarowanymi pułapkami, wyprowadzanie pełnej informacji o stanie systemu oraz śladowanie przebiegu programu w czasie rzeczywistym.
Jedyną wadą systemu uruchomieniowego wykorzystującego emulację układową jest stosunkowo duży koszt.