是否可以从 emulator/simulator 内的生产设备 运行 闪存转储进行离线调试?

Is it possible to run a flash memory dump from a production device inside of an emulator/simulator for offline debugging?

我不确定这是否是正确的论坛,或者它是否更适合不同的 SE sub,但我认为这是一个合适的地方。

我想知道是否有任何模拟器能够 运行直接针对从中转储的设备上的相同架构进行闪存转储?因此,例如,如果转储是从设备(通过 JTAG)运行ning Broadcom MIPS CPU 获取的,并且它包含整个系统(引导加载程序、固件、文件系统、NVRAM 等)是有什么我可以直接挂载(或者我应该说,将其加载到内存中)原始图像,内存和所有内容,以及 运行 它,类似于我如何将它闪存到具有相同芯片的不同设备上?

我一直在研究不同的软件,例如 OVPsim(它是 "full system simulator" 和 Qemu,但我不确定它们是否可以 运行 直接完整转储。

任何人都可以阐明这一点,看一切都会让人困惑。

我过去在 Qemu 下使用过 运行 embedded-Linux 系统,但它们一般不会走得太远。通常他们会给你一个 CPU 内核的仿真,足以启动内核,但没有 "special sauce" 周围的仿真 CPU (例如,SoC 可能有定时器,GPIO,I/O 接口和一大堆其他东西)。

如果我执意要这样做,我会为 CPU 核心获取一个模拟器,并可能编写我自己的模拟器。我是如何做到的取决于我模拟的是什么——旧的 8/16/32 位平台的 MESS,或者现代工具包的 Qemu。

警惕对这些系统的期望过高。它们非常适合算法开发和测试(并且在较小程度上 "black box" 自动化测试)但是有一点你只需要硬件。