【发布时间】:2011-02-26 12:57:55
【问题描述】:
我正在根据教科书学习 ARM 处理器...
我认为如果我可以将所学知识应用到 ARM 模拟器上会更有用...编写代码然后观察结果和不同的执行阶段会更有趣...
我已经搜索过了,但我只能找到 linux 上的免费软件或 windows 上的演示
是否有一个模拟器可以让我看到在 Windows 上运行的 ARM 处理器(任何版本!)的执行步骤和不同的变化??
谢谢
【问题讨论】:
我正在根据教科书学习 ARM 处理器...
我认为如果我可以将所学知识应用到 ARM 模拟器上会更有用...编写代码然后观察结果和不同的执行阶段会更有趣...
我已经搜索过了,但我只能找到 linux 上的免费软件或 windows 上的演示
是否有一个模拟器可以让我看到在 Windows 上运行的 ARM 处理器(任何版本!)的执行步骤和不同的变化??
谢谢
【问题讨论】:
也许您指的是 Windows 的实验性二进制安装程序。对于 Windows 上的源安装,请参阅this documentation。
【讨论】:
ARMs emulator armulator,在许多地方都以源代码形式提供,例如在 gdb 源代码中。 qemu 效果很好,但很难“看到你的代码”。最好的办法是为 arm 内核提供 hdl 源(例如 verilog)并创建 vcd 文件或其他波形格式。除非你为一家拥有嵌入式手臂的芯片公司工作,尽管你可能不会找到一个。我可能是错的,但我认为那里所有的开放臂核心都很快被 ARM 拿下。
mame 有一两个手臂核心。视觉男孩前进有一个手臂核心。 nds 模拟器具有 arm 核心。
或者你可以像我用拇指发生器做的那样自己写,我发现这比试图让其他人向我展示我想看的东西更容易。当然我很懒,只做了拇指指令集模拟器而不是全臂模拟器。一点都不难,就是费时间。
编辑
好的,我已经纠正了。谷歌的话arm verilog。 isc.tgz 包含一个手臂的行为模型模型,它可以使用 icarus verilog(免费)编译和运行。
注释掉所有 $save_store();行(就像 C 使用 //)。
向 testarm.v 添加几行代码(例如在 arm10 之后和初始开始之前)。
初始 开始 $dumpfile("test.vcd"); $dumpvars(0,arm10); 结束
总是 #50000 $finish;
然后
iverilog -o hello testarm.v arm10.v
vvp你好
它将运行 50000 单位时间,完成 sim 并关闭 vcd 文件。要使 sim 更长或更短,请更改始终 #50000 行。
获取 gtkwave(免费)的副本以查看 vcd 文件。使用 gtkwave 是另一篇文章,您需要执行以下操作,例如单击 test_arm 旁边的 + 号,然后单击那里的 arm10,在信号下单击说 addr_bus 以突出显示该行,然后单击附加框,单击 data_bus 并单击附加按钮,可能会添加一些寄存器,r1,r2 等。有一个工具栏,但您也可以使用菜单 time->zoom->zoom full,这是我安装的 ALT-F。然后你就可以学习如何放大和缩小事物。
根据个人经验,您不会比使用 hdl 模拟器“看到您的代码”运行得更好。实际上,一旦您习惯了这一点,您可能很难在几乎看不到任何东西的硅片上运行。
除了运行包含在该行为模型中的测试程序之外,我还没有做更多的事情。不知道你能用它做什么或不能做什么。
verilog $readmemh 非常简单,它只是想将十六进制的行读入指定的任何内存。因此,您可以轻松地制作一个工具来获取已编译的 arm 代码并创建 verilog 模拟所需的 ascii 文件。
【讨论】:
Qemu 支持 Windows,是 ARM 的一流模拟器。当然,确切的流水线状态不可用,但程序员的仿真视图是可用的。
【讨论】:
这个问题已经很久了。 仍然认为为熟悉C的人写一个答案会很好。 这是一个模拟一些/遵循 ARM 汇编指令的小型 C 应用程序,您可以在其中添加调试或打印结果以检查执行阶段。
源代码在这里:http://www.omidmufeed.com/arm-assembler-emulator-with-c/
【讨论】:
ARMSim# 是在 Windows 环境中运行的桌面应用程序。它允许用户在基于ARM7TDMI处理器的系统上模拟ARM汇编语言程序的执行。
在我看来:它是一个模拟器,并且是特定于处理器的,也就是说,正如其他人所建议的那样,在 QEMU 下运行 ARM Linux 是测试实际解决方案时的更好选择。下一步是裸 ARM 金属,在 2015 年可以通过 Raspberry PI 廉价地实现。
【讨论】:
您可以使用cpulator 在网络浏览器中运行 ARM 汇编代码并查看执行步骤。
【讨论】:
我刚刚找到VisUAL,到目前为止一切都很好。
【讨论】: