我正在从教科书中学习ARM处理器......
我认为如果我可以在ARM模拟器上应用我学到的东西会更有用...编写代码然后观察结果和不同的执行阶段会更有趣......
我已经搜索过了,但我能找到的只是linux上的免费软件或Windows上的演示
是否有模拟器允许我查看在Windows上运行的ARM处理器(任何版本!)的执行步骤和不同更改?
由于
答案 0 :(得分:4)
也许您指的是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汇编指令,您可以在这些指令中添加调试或打印结果以检查执行阶段。
源代码可在此处获取:http://www.omidmufeed.com/arm-assembler-emulator-with-c/
答案 4 :(得分:1)
ARMSim#是在Windows环境中运行的桌面应用程序。它允许用户在基于ARM7TDMI处理器的系统上模拟ARM汇编语言程序的执行。
来自我:它是一个模拟器并且是特定于处理器的,即在其他人建议的情况下,在QEMU下运行ARM Linux,在测试真实解决方案时是更好的选择。下一步是裸ARM金属,2015年使用Raspberry PI可以很容易地实现。
答案 5 :(得分:1)
您可以使用 cpulator 在网络浏览器中运行 ARM 汇编代码并查看执行步骤。
答案 6 :(得分:0)
我刚刚发现了VisUAL,到目前为止一切都很好。