Windows上的ARM模拟器

时间:2010-06-01 20:26:55

标签: assembly arm simulator

我正在从教科书中学习ARM处理器......

我认为如果我可以在ARM模拟器上应用我学到的东西会更有用...编写代码然后观察结果和不同的执行阶段会更有趣......

我已经搜索过了,但我能找到的只是linux上的免费软件或Windows上的演示

是否有模拟器允许我查看在Windows上运行的ARM处理器(任何版本!)的执行步骤和不同更改?

由于

7 个答案:

答案 0 :(得分:4)

QEMU

也许您指的是Windows的实验性二进制安装程序。有关Windows上的源安装,请参阅this documentation

答案 1 :(得分:2)

Qemu支持Windows,是ARM的第一类模拟器。当然,确切的管道状态不可用,但程序员对仿真的看法是可用的。

答案 2 :(得分:2)

ARM仿真器装配器,在许多地方以源形式提供,例如在gdb源中。 qemu效果很好,但很难“看到你的代码”。最好的方法是为arm核心创建一个hdl源(例如verilog)并创建vcd文件或其他波形格式。除非你为一家拥有嵌入式设备的芯片公司工作,否则你可能找不到它。我可能错了,但我认为ARM的所有开臂核心都很快就被取消了。

mame有一两个手臂核心。视觉男孩前进有一个手臂核心。 nds仿真器有arm核心。

或者你可以做我用拇指按钮做的事情并自己编写,我觉得比让其他人向我展示我想要看的内容更容易。当然我很懒,只做拇指指令集模拟器而不是全臂模拟器。这并不困难,只是耗费时间。

修改

好的,我的立场得到了纠正。谷歌的话verilog。 isc.tgz包含一个手臂的行为模型模型,它可以用icarus verilog(免费)编译和运行。

注释掉所有$ save_store();行(就像C使用//)。

在testarm.v中添加几行代码(例如在arm10之后和初始开始之前)。

初​​始  开始     $转储文件( “test.vcd”);     $ dumpvars(0,ARM10);  端

总是#50000 $ finish;

然后

iverilog -o hello testarm.v arm10.v

vvp hello

它将运行50000单位的时间,完成SIM并关闭vcd文件。要使SIM更长或更短,请更改始终#50000行。

获取gtkwave(免费)的副本以查看vcd文件。使用gtkwave是另外一篇文章,你需要点击test_arm旁边的+号,然后点击那里的arm10,在信号点击下面说addr_bus突出显示该行,然后点击追加框,点击data_bus然后点击追加按钮,可能会添加一些寄存器,r1,r2等。有一个工具栏但你也可以使用菜单时间 - > zoom-> zoom full,这是我的ALT-F安装。然后你将学习如何放大和缩小事物。

从个人经验来看,你不会“看到你的代码”比使用hdl模拟器更好。实际上,一旦你习惯了这个,你可能很难在硅片上运行,而你几乎看不到任何东西。

我没有做过比运行该行为模型所包含的测试程序更多的工作。不知道你能做什么或不能做什么。

verilog $ readmemh非常简单,它只是想读取指定内存中的十六行。因此,您可以轻松地创建一个工具来获取编译后的arm代码并创建verilog模拟所需的ascii文件。

答案 3 :(得分:1)

这个问题已经有很长一段时间了。 仍然认为为那些熟悉C的人写一个答案会很好。 这是一个小型C应用程序,它模拟一些/后面的ARM汇编指令,您可以在这些指令中添加调试或打印结果以检查执行阶段。

  1. 管道:尺寸4
  2. 为内存位置保留;中断指令和用户说明。
  3. 计算每条指令和总周期的周期。
  4. 数据处理指令:设置溢出和进位标志。
  5. 分支指令:如果需要,使用堆栈存储链接数据。
  6. 数据传输说明。
  7. 中断指令:在获取新指令之前,在输入指令集中执行中断指令或接受硬件指令。
  8. 打印出寄存器,用户可访问的内存,堆栈内存和状态标志。可以打开“debugEnabled”和“instructionLogEnabled”变量以获取输出中的更多信息。
  9. 源代码可在此处获取:http://www.omidmufeed.com/arm-assembler-emulator-with-c/

答案 4 :(得分:1)

ARMSIM

  

ARMSim#是在Windows环境中运行的桌面应用程序。它允许用户在基于ARM7TDMI处理器的系统上模拟ARM汇编语言程序的执行。

来自我:它是一个模拟器并且是特定于处理器的,即在其他人建议的情况下,在QEMU下运行ARM Linux,在测试真实解决方案时是更好的选择。下一步是裸ARM金属,2015年使用Raspberry PI可以很容易地实现。

答案 5 :(得分:1)

您可以使用 cpulator 在网络浏览器中运行 ARM 汇编代码并查看执行步骤。

答案 6 :(得分:0)

我刚刚发现了VisUAL,到目前为止一切都很好。