ARM Simulator на Windows - PullRequest
       6

ARM Simulator на Windows

6 голосов
/ 02 июня 2010

Я изучаю процессоры ARM из учебника ...

Я подумал, что было бы более полезно, если бы я мог применить то, что я изучил, на симуляторе ARM ... писать код, а затем наблюдать за результатами и различными этапами выполнения, было бы веселее ...

Я искал его, но все, что я мог найти, это либо бесплатное программное обеспечение для Linux, либо демонстрационная версия для Windows

Есть ли симулятор, который позволяет мне видеть шаги выполнения и различные изменения для процессора ARM (любой версии!), Который работает на Windows ??

Спасибо

Ответы [ 6 ]

4 голосов
/ 02 июня 2010

QEMU

Возможно, вы имели в виду экспериментальный бинарный установщик для Windows. Для установки источника в Windows см. эту документацию .

2 голосов
/ 02 июня 2010

Эмулятор ARMs, эмулятор, доступен в виде исходного кода во многих местах, например, в источниках GDB. qemu прекрасно работает, но будет трудно "увидеть ваш код". Лучше всего иметь исходный код hdl (например, verilog) для ядра arm и создавать файлы vcd или другие форматы сигналов. Если вы не работаете в компании по производству микросхем со встроенным кронштейном, хотя вы, вероятно, не найдете его. Я могу ошибаться, но я думаю, что все открытые кронштейны быстро сносятся ARM.

мама имеет ядро ​​руки или два. У визуального мальчика есть сердцевина руки. У эмуляторов nd есть ядра.

Или вы можете сделать то, что я сделал, с помощью большого пальца и написать свой, я нашел это проще, чем пытаться заставить кого-то другого показать мне то, что я хотел увидеть. Конечно, я был ленив и только сделал эмулятор набора инструкций большого пальца вместо эмулятора полной руки. Это совсем не сложно, просто много времени.

EDIT

Хорошо, я исправлен. погуглите слова arm verilog. isc.tgz содержит поведенческую модель модели руки, которая прекрасно работает и работает с icarus verilog (бесплатно).

Закомментируйте все $ save_store (); строки (так же, как C использует //).

Добавьте несколько строк кода в testarm.v (например, после arm10 и до начального начала).

начальная начать $ DumpFile ( "test.vcd"); $ dumpvars (0, ARM10); конец

всегда # 50000 $ отделка;

тогда

iverilog -o привет testarm.v arm10.v

vvp привет

, и он будет работать 50000 единиц времени, закончить сим и закрыть файл VCD. Чтобы сделать сима длиннее или короче, измените строку всегда # 50000.

Получить копию gtkwave (бесплатно) для просмотра файла vcd. Использование gtkwave - совсем другой пост, вам нужно сделать что-то вроде щелчка на знаке + рядом с test_arm, затем нажмите на arm10, который там есть, под сигналами нажмите сказать addr_bus, чтобы выделить строку, затем нажмите на поле добавления нажмите на data_bus и нажмите кнопку добавления, возможно, добавьте несколько регистров, r1, r2 и т. д. Есть панель инструментов, но вы также можете использовать меню time-> zoom-> zoom full, что ALT-F в моей установке. тогда вы научитесь увеличивать и уменьшать масштаб изображения.

Исходя из личного опыта, вы не "увидите свой код", работающий лучше, чем при использовании симулятора hdl. На самом деле, как только вы привыкнете к этому, вам может быть трудно работать с кремнием, когда вы почти ничего не видите.

Я сделал не больше, чем запустил тестовую программу, которая была включена в эту поведенческую модель. не знаю, что вы можете или не можете сделать с этим.

verilog $ readmemh довольно прост, он просто хочет прочитать строки шестнадцатеричного кода в любую указанную память. Таким образом, вы можете легко создать инструмент, который берет ваш скомпилированный код руки и создает файл ascii, который хочет симуляция verilog.

2 голосов
/ 02 июня 2010

Qemu поддерживает Windows и является эмулятором первого класса для ARM. Конечно, точные состояния конвейера недоступны, но доступно представление программиста об эмуляции.

1 голос
/ 25 мая 2015

ARMSIM

ARMSim # - настольное приложение, работающее в среде Windows. Он позволяет пользователям моделировать выполнение программ на языке ассемблера ARM в системе, основанной на процессоре ARM7TDMI.

От меня: это симулятор и зависит от процессора, то есть запуск ARM Linux под QEMU, как и другие предлагали, является лучшим вариантом при тестировании реальных решений. Следующий шаг - это голый ARM-металл, который в 2015 году будет дешевым с Raspberry PI.

1 голос
/ 15 сентября 2014

Прошло много времени с тех пор, как этот вопрос. Еще думал, что было бы неплохо написать ответ тем, кто знаком с C. Это небольшое приложение на C, которое эмулирует некоторые / следующие инструкции по сборке ARM, где вы можете добавлять отладочные или печатать результаты в точках для проверки этапов выполнения.

  1. Трубопровод: Размер 4
  2. Резервирует места в памяти для; Инструкции по прерыванию и инструкции пользователя.
  3. Подсчитывает циклы для каждой инструкции и общее количество циклов.
  4. Инструкции по обработке данных: устанавливает флаги переполнения и переноса.
  5. Инструкции ветвления: использует стек для хранения данных ссылки, если необходимо.
  6. Инструкции по передаче данных.
  7. Инструкции прерывания: выполняет команду прерывания в наборе инструкций ввода или принимает аппаратные инструкции перед извлечением новой инструкции.
  8. Распечатывает регистры, доступную пользователю память, память стека и флаги состояния. Переменные «debugEnabled» и «instruLogEnabled» могут быть включены для получения дополнительной информации в выходных данных.

Исходный код доступен здесь: http://www.omidmufeed.com/arm-assembler-emulator-with-c/

0 голосов
/ 15 ноября 2018

Я только что нашел VisUAL и до сих пор это было здорово.

...