Bet*_*moo 6 assembly arm simulator
我正在从教科书中学习ARM处理器......
我认为如果我可以在ARM模拟器上应用我学到的东西会更有用...编写代码然后观察结果和不同的执行阶段会更有趣......
我已经搜索过了,但我找到的只是linux上的免费软件或Windows上的演示
是否有模拟器允许我查看在Windows上运行的ARM处理器(任何版本!)的执行步骤和不同更改?
谢谢
ARM 模拟器 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 你好 testarm.v arm10.v
副总裁你好
它将运行 50000 个时间单位,完成 sim 并关闭 vcd 文件。要使 sim 更长或更短,请更改always #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文件。
| 归档时间: |
|
| 查看次数: |
15773 次 |
| 最近记录: |