EM400 - konfiguracja

Z MERA 400 wiki
Wersja z dnia 15:14, 10 mar 2013 autorstwa Amo (dyskusja | edycje) (Utworzył nową stronę „Plik konfiguracyjny EM400 pozwala skonfigurować parametry sprzętowe emulowanej maszyny i jest wymagany do uruchomienia emulatora. Domyślne EM400 próbuje załadow...”)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

Plik konfiguracyjny EM400 pozwala skonfigurować parametry sprzętowe emulowanej maszyny i jest wymagany do uruchomienia emulatora. Domyślne EM400 próbuje załadować następuące pliki konfiguracyjne:

  • em400.cfg (w katalogu bieżącym)
  • ~/.em400/em400.cfg (konfiguracja użytkownika)
  • /etc/em400.cfg (konfiguracja systemowa)

Jeśli jeden z plików uda się poprawnie załadować, dalesze nie są sprawdzane. Powyższa lista plików jest ignorowana, jeśli użytkownik użyje przełącznika -c w linii poleceń

Składnia pliku konfiguracyjnego

Konfiguracja składa się z bloków opisujących poszczególne elementy systemu. Definicja bloku rozpoczyna się jego nazwą, po czym w nawiasach wąsowych występuje zero lub więcej dostępnych opcji konfiguracyjnych dla elementu. Elementy objęte konfiguracją to:

  • cpu - procesor
  • memory - pamięć

Procesor

Dostępne sa następujące opcje konfigurujące działanie procesora:

  • speed - prędkość emulacji procesora. Dostępne warianty:
    • max - emulator działa tak szybko, jak pozwala na to procesor maszyny, na której działa emulator
    • real - emulator stara się zachować oryginalne czasy wykonania instrukcji, czasy dostępu do pamięci i urządzeń zewnętrznych
  • timer_step - okres zegara systemowego (w mikrosekundach)
  • mod_17bit - włącz/wyłącz modyfikację sprzętową CPU pozwalającą na 17-bitowe adresowanie bajtów (domyślnie włączone)
  • mod_sint - włącz/wyłącz modyfikację sprzętową dodającą przerwanie programowe o wysokim priorytecie (domyślnie włączone)

Przykładowy blok konfiguracji CPU:

cpu {
       speed = max
       timer_step = 10
       mod_17bit = true
       mod_sint = false
}

Pamięć

Każdy z szesnastu fizycznych modułów pamięci operacyjnej może zostać skonfigurowany niezależnie. Dołączone zostaną tylko bloki o numerach podanych w konfiguracji, pozostałe będą z punktu widzenia systemu nieobecne. Konfiguracja pojedynczego modułu pamięci opisana jest w następujący sposób:

module <nr_modułu> = <typ>:<il_segmentów>

Gdzie:

  • nr_modułu - kolejny numer modułu pamięci z zakresu 0-15 (moduł 0 to moduł pamięci systemu operacyjnego, musi mieć rozmiar przynajmniej 2 segmentów)
  • typ - typ modułu pamięci. Dostępne typy to:
    • elwro - pamięć ferrytowa
    • mega - pamięć półprzewodnikowa
  • il_segmentów - ilość 4k-słowowych segmentów w module (liczba z zakresu 1-16)

Przykładowy blok konfiguracji pamięci:

memory {
       module  0 = elwro:8
       module  1 = mega:16
       module  2 = mega:5
}