有谁知道 ARM 的固定虚拟平台 (FVP) 二进制文件(通常需要付费许可证)和 QEMU 的免费模型之间有什么区别?
例如:调试和跟踪能力等它们的强项/弱点是什么?
有谁知道 ARM 的固定虚拟平台 (FVP) 二进制文件(通常需要付费许可证)和 QEMU 的免费模型之间有什么区别?
例如:调试和跟踪能力等它们的强项/弱点是什么?
我想说的是,即使它们可以比较,也不应该因为它们针对不同的目的。请注意,此处使用的术语在DS-5 中定义:什么是 FVP、RTSM、基础模型、AEM 模型、快速模型、CADI?) 因为你指定了 FVP 和 fastmodel。
我将尝试根据我在这些工具上的尝试来回答。
速度与准确性。
QEMU 的准确度较低,但比 FVP 快。关于这个有很多不同的来源(即使我找不到关于基准测试的论文),但我观察到 QEMU 在引导 Linux 方面比 fastmodel 快 2 倍。
关于准确性:如果您只想运行应用程序,那么 QEMU 适合您。但是,如果您想获得微架构(核心内部是什么,了解安全扩展,......),那么需要 fastmodel。如果您需要访问处理器的新扩展/更新,那么 fastmodel 将是第一个拥有这些功能的。可能甚至在芯片可用之前,因为它是在 Arm 中开发的。
支持
QEMU 是开源的,因此您可以让社区帮助您甚至深入研究代码。而 Arm 有一条支持“热线”,您无法访问代码。
两者都有很多关于如何使用该工具的文档,并且很容易找到。
两者都在 Windows/Linux 上运行。
功能性
QEMU 还提供了运行的可能性qemu-static
(请参阅 Ubuntu 中的包,..),此页面提供了它的概述。Fastmodel 不提供此功能。
我无法在 QEMU 中找到如何以与FVP中相同的粒度更新系统配置。
创建新的 SoC
System Canvas 可以在 Fastmodel 中使用(请参阅文档),这是一个可用于生成 SoC 的图形界面。
在 QEMU 中,似乎有一些您可以使用的预定义平台。使用 FVP 时,此处列出。
调试
QEMU 似乎只提供 GDB 作为调试器(https://wiki.qemu.org/Documentation/Debugging)。FVP 可以与CADI、GDB、ModelDebugger 一起使用。它似乎使用 Arm 调试器提供了有关系统组件的更多信息。