2010-06-01 14 views
6

uczę procesorów ARM z podręcznika ...
ARM Simulator na Windows

myślałem będzie bardziej przydatny, czy mogę zastosować to, czego uczę się na symulatorze ARM ... Pisanie kodu następnie oglądanie wyników i Poszczególne etapy wykonania byłoby więcej zabawy ...

Szukałem dla niej, ale wszystko udało mi się znaleźć była albo darmowy Linux lub demo na oknach

Czy istnieje symulator, który pozwala mi zobaczyć wykonanie kroki i różne zmiany dla procesora ARM (dowolna wersja!), który działa w systemie Windows?

Dzięki

Odpowiedz

2

Mam emulator kciuka, który powinien skompilować w dowolnym miejscu, Windows, Linux, Mac, cokolwiek. thumbulator.blogspot.com. Dodaj kilka printfs, gdziekolwiek chcesz coś zobaczyć, a ty jesteś złoty. Emulator ARM, armulator, jest dostępny w formie źródłowej w wielu miejscach, na przykład w źródłach GDB. qemu działa świetnie, ale trudno będzie "zobaczyć swój kod". najlepiej byłoby mieć źródło hdl (np. verilog) na rdzeń ramienia i tworzyć pliki vcd lub inne formaty fal. Chyba, że ​​pracujesz dla firmy chipowej z osadzonym ramieniem, chociaż prawdopodobnie jej nie znajdziesz. Mogę się mylić, ale myślę, że wszystkie otwarte rdzenie ramion są szybko usuwane przez ARM.

mame ma rdzeń ramienia lub dwa. Wzrok chłopca wzrokowego ma rdzeń ramienia. emulatory nds mają rdzenie ramion.

Albo możesz zrobić to, co zrobiłem z thumbulatorem i napisać własne, Znalazłem to łatwiej niż próbowanie nakłonić jednego z pozostałych, by pokazał mi to, co chciałem zobaczyć. Oczywiście byłem leniwy i zamiast emulatora pełnego ramienia wykonałem tylko emulator zestawu instrukcji kciuka. Nie jest to wcale trudne, tylko czasochłonne.

EDYTOWANIE

OK, poprawiam się. google słowa verilog ramię. isc.tgz zawiera model modelu behawioralnego ramienia, który kompiluje i działa dobrze z icarus verilog (darmowy).

Skomentuj wszystkie $ save_store(); linie (tak jak C używają //).

Dodaj kilka linii kodu do testarm.v (po ramieniu 10 i przed początkowym rozpoczęciem na przykład).

początkowa Rozpocznij $ dumpfile ("test.vcd"); $ dumpvars (0, arm10); koniec

zawsze # 50000 $ Zakończ;

następnie

iverilog -o cześć testarm.v arm10.v

VVP cześć

i to będzie działać 50000 jednostek czasie zakończyć sim i zamknąć plik VCD. Aby uczynić tę sim dłuższą lub krótszą, należy zawsze zmienić linię # 50000.

Uzyskaj kopię gtkwave (za darmo), aby wyświetlić plik vcd. Korzystanie z gtkwave to zupełnie inny post, będziesz chciał zrobić coś takiego jak kliknięcie na znak + obok test_arm, następnie kliknij na arm10, które tam jest, pod sygnałami kliknij na addr_bus, aby podświetlić linię, a następnie kliknij pole dołączenia, kliknij na data_bus i kliknij przycisk dołączania, być może dodaj kilka rejestrów, r1, r2, itp. Jest pasek narzędzi, ale możesz również użyć czasu menu-> przybliżenie-> powiększenie, które jest ALT-F na mojej instalacji. wtedy nauczysz się powiększać i pomniejszać rzeczy.

Mówiąc z własnego doświadczenia, nie "widzisz swojego kodu" działa lepiej niż przy użyciu symulatora hdl. Właściwie, kiedy już się przyzwyczaisz, możesz mieć problemy z działaniem na krzemie, gdzie prawie nic nie widzisz.

Nie zrobiłem nic więcej niż uruchomić program testowy dołączony do tego modelu behawioralnego. nie wiem, co możesz lub nie możesz z tym zrobić.

Verilog $ readmemh jest całkiem prosty, po prostu chce odczytywać linie heksadecymalne do dowolnej pamięci. Możesz więc łatwo stworzyć narzędzie, które pobiera skompilowany kod ręki i tworzy plik ASCII, którego potrzebuje symulacja verilog.

+0

Uwaga: model behawioralny (HDL) nie jest modelem syntezowalnym, co oznacza, że ​​nie można z niego utworzyć mikroprocesora. Nic nie musi martwić się, że ARM będzie się znajdować na otwartej przestrzeni. –

4

QEMU

Być może były odnoszące się do eksperymentalnego binarnego instalatora dla systemu Windows. Aby uzyskać instalację źródłową w systemie Windows, zobacz this documentation.

+0

Czy jest jeszcze jeden z lepszym interfejsem? – Betamoo

2

Qemu obsługuje system Windows i jest emulatorem pierwszej klasy ARM. Oczywiście dokładne stany rurociągu nie są dostępne, ale dostępny jest widok programatora na emulację.

1

Minęło dużo czasu od tego pytania. Nadal uważam, że dobrze byłoby napisać odpowiedź dla tych, którzy są zaznajomieni z C. Jest to mała aplikacja C, która emuluje niektóre/następujące instrukcje montażu ARM, gdzie można dodać wyniki debugowania lub drukowania w punktach, aby sprawdzić etapy wykonania .

  1. Pipeline: Rozmiar 4
  2. Rezerwaty miejsc pamięci dla; Przerwać instrukcje i instrukcje dla użytkownika.
  3. Zlicza cykle dla każdej instrukcji i całkowitych cykli.
  4. Instrukcje przetwarzania danych: Ustawia flagi przepełnienia i przenoszenia.
  5. Instrukcje rozgałęzień: Używa stosu do przechowywania danych łącza w razie potrzeby.
  6. Instrukcje przesyłania danych.
  7. Instrukcje przerwania: Wykonuje instrukcję przerwania w instrukcji wejściowej, ustawia lub akceptuje instrukcję sprzętu przed pobraniem nowej instrukcji.
  8. Drukuje rejestry, pamięć dostępną dla użytkownika, pamięć stosu i flagi stanu. Zmienne "debugEnabled" i "instructionLogEnabled" można włączyć, aby uzyskać dalsze informacje na wyjściu.

Kod źródłowy jest dostępny tutaj: http://www.omidmufeed.com/arm-assembler-emulator-with-c/

1

ARMSIM

ARMSim # to aplikacja działa w środowisku Windows. Pozwala użytkownikom symulować wykonywanie programów języka asemblerowego ARM w systemie opartym na procesorze ARM7TDMI.

Ode mnie: to symulator i procesor jest specyficzne, czyli ARM z systemem Linux pod QEMU, jak inni sugerowane, jest lepszym rozwiązaniem przy testowaniu rozwiązań rzeczywistych. Następnym krokiem jest odsłonięty metal ARM, który w 2015 roku jest tanio osiągalny dzięki Raspberry PI.

Powiązane problemy