【问题标题】:Arm (thumb-2) assembly emulator?Arm(thumb-2)组装模拟器?
【发布时间】:2010-09-01 04:37:40
【问题描述】:

是否有用于 thumb-2 组装的模拟器之类的东西?我想编写简单的 ARM Thumb-2 汇编程序并在不需要使用实际 ARM 设备的情况下对其进行测试,所以我唯一的选择是仿真。

我的目标是在 thumb-2 汇编中实现大量算法作为学习练习。我什至不需要模拟其他硬件(例如 io/display/etc)。只是能够运行thumb-2汇编(编译或未编译)并查看结果(即我的程序完成后基本上可以调试程序并查看模拟内存的内容)。

这样的事情是否存在,还是我在抓稻草?

【问题讨论】:

  • Stackoverflow 是解决此类问题的合适场所。

标签: arm emulation


【解决方案1】:

QEMU 支持带有 Thumb-2 的处理器,例如 Cortex-M3 和 Cortex-A8。在最新的 CodeSourcery 版本中甚至是 included

【讨论】:

  • 非商业版也是这样吗?
  • 我不确定,可能不在免费版中。但无论如何,您始终可以构建自己的版本。
  • 非常酷,感谢您指出这一点。我从来没有听说过这个。
【解决方案2】:

Android 模拟器 (4.0) 建议它使用 armeabi-v7a

我也在尝试查看是否有任何配备 Cortex A8 处理器的廉价硬件 Android 平板电脑在 Thumb-2 模式下运行,或者您是否可以在它们上运行原生 Thumb-2 代码

"最新版本的 NDK 支持这些 ARM 指令集: ... ARMv7-A(包括 Thumb-2 ..." 不确定它需要什么版本的 Android

【讨论】:

    【解决方案3】:

    Thumb2 主要是带有一些新指令的拇指。 thumb2 教育的大部分内容只是学习拇指。所有 thumb2 处理器都对 thumb 指令集非常满意。与学习 arm11 指令之前学习 arm7 不同。 thumbulator 将帮助处理 thumb 指令集、基础知识,但不会帮助 thumb2 的添加,除非您选择实现它们。

    还有 armulator 是/曾经是 arm 指令集模拟器,您可以在 gdb 之类的东西中找到它。学习 qemu 并没有什么用处,但如果您想尝试观察正在发生的事情,它比 qemu 更简单。 gdb 本身可能是您感兴趣的平台,因为它具有这种可见性以及指令集模拟器。

    Qemu 非常适合模拟某个 arm/thumb 目标的 linux 构建(并让它快速运行)。驱动程序在哪里等。但是从头开始,只是为了让您可以看到少数几行汇编程序,您将不得不进行一些 I/O,并且可能只是为了让 qemu 启动和运行您的代码而努力,可能对你正在做的事情产生反作用。 ymmv

    【讨论】:

    • 实际上 thumb2 添加了一堆东西并使先前/原始的拇指指令复杂化。我肯定会先学习拇指,然后再学习拇指 2。 arm-arm-7m 可从 arm 网站免费下载(一旦注册),涵盖了 cortex-m3 支持的指令集和所有 thumb2 混乱。
    【解决方案4】:

    您有多种选择。我会按从好到坏的顺序列出它们。

    1. QEMU 模拟设备
    2. Keil uVision 软件
    3. Yocto bitbake 工具

    解释:

    1. 我喜欢将 QEMU 称为 VM 的“地铁”。你用“你想要的一切,没有你不想要的东西”构建一个完整的虚拟机。这意味着您可以设计您想要模拟的机器的几乎所有方面(包括它使用的 ISA)。需要一些 QEMU 技术技能。

    2. Keil uVision 是开发、测试和上传汇编/嵌入式 C 代码的好工具。 Keil 无需附加设备即可处理大量调试。

    3. Yocto 是一个用于创建自定义 Linux 环境的开源工具。与 QEMU 类似,您正在创建自定义架构。不过,这比 QEMU 记录得更少,而且更“挑剔”。非常酷的项目#promotions

    【讨论】:

      猜你喜欢
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多