【问题标题】:Using QEMU as external translator library使用 QEMU 作为外部翻译库
【发布时间】:2015-09-24 14:06:07
【问题描述】:

我正在为 Win32 扩展电路仿真引擎,并希望添加 arm 核心支持并与 systemC 集成。
我需要一些允许我加载二进制文件并逐步执行它的库。它不应该使用任何内核驱动程序或管理程序。
执行速度并不重要,因为它主要是逐步运行。
过去有一个 libqemu 允许它。此外,GDB 支持使它变得更好。但现在看起来它只能作为独立的模拟器工作。 可能有更好的方法吗?我希望我在正确的论坛上发布了它

【问题讨论】:

  • 您只是在 QEMU 中寻找 GDB 支持吗?这实际上是可用的 - 如果是这样,我可以在答案部分发布说明。不过,如果您希望扩展 QEMU - 欢迎加入俱乐部哈哈。修改代码充其量是混乱的,最坏的情况是一场噩梦——没有大量的文档。最好的办法是开始阅读源代码(如果您愿意,我还可以在答案中提供基本的工作流程)和 qemu-devel 邮件列表。
  • 我需要从我的 DLL 中逐步控制 QEMU 的执行。我想要开始,加载代码,在我想要的时候一步一步地执行。提取/查看内存、寄存器等。我的代码是用 C 和 Lua 编写的。我还想添加对旧 CPU 的支持,但现在我只想将它用作我的 DLL 的扩展。不是独立的可执行文件。
  • 这或多或少是我试图用 QEMU for Linux 做的事情。简短的回答是没有一个简单的方法来做到这一点——QEMU 并不是为那样工作而设计的。一个更简单的解决方案(或者至少是我想到的最好的解决方案)是在您的程序中创建一个 gdb-server 并使用它与 QEMU 的 gdb 存根进行交互。我不能 100% 确定如何在应用程序/DLL 中启动 gdb,但这比修改 QEMU 的源代码要容易得多。
  • 将其发布为答案。非常感谢你的想法。我会调查的

标签: c arm simulation qemu cortex-m3


【解决方案1】:

你应该看看:https://hiventive.com

我们正在开发一种开源解决方案,允许您将 QEMU 与 SystemC 连接,将 QEMU CPU 导出为具有类似 TLM-​​2.0 接口的库。也可以使用 GDB 服务器。

我们的测试版提供了一个 Raspberry Pi 演示平台。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 2019-11-28
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 2021-01-20
    • 1970-01-01
    相关资源
    最近更新 更多