Эмулятор 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.