Средство моделирования ARM в Windows

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

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

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

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

Спасибо

6
задан Betamoo 1 June 2010 в 20:26
поделиться

3 ответа

ARM-эмулятор armulator, доступен в исходной форме во многих местах, например в исходниках gdb. qemu отлично работает, но «увидеть ваш код» будет сложно. Лучше всего иметь источник hdl (например, verilog) для ядра руки и создавать файлы vcd или другие форматы сигналов. Если вы не работаете в компании по производству микросхем со встроенным манипулятором, хотя вы, вероятно, не найдете его. Я могу ошибаться, но я думаю, что все открытые ядра ARM быстро отключены.

У матери есть сердечник или два. visual boy advance имеет ядро ​​руки. у эмуляторов nds есть ядра arm.

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

РЕДАКТИРОВАТЬ

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

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

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

начальная начинать $ dumpfile ("test.vcd"); $ dumpvars (0, arm10); end

always # 50000 $ finish;

then

iverilog -o hello testarm.v arm10.v

vvp hello

и он будет работать 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
ответ дан 10 December 2019 в 00:34
поделиться

QEMU

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

4
ответ дан 10 December 2019 в 00:34
поделиться

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

2
ответ дан 10 December 2019 в 00:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: