我正在尝试为 ARM Cortex M3 编写模拟器。如何读取二进制文件然后对其进行解码?我想使用二进制文件作为我的模拟器的资源。我用 Atmel Studio 创建了一个项目并编译了它。现在,我有一个 .hex 文件。我还可以使用 hex2bin 将此文件转换为二进制文件。之后,如何使用该二进制文件来获取和解码指令?我正在使用 C/C++ 开发 Visual Studio。
问问题
914 次
1 回答
1
首先需要提一下,为一个处理器写一个模拟器并不是一件容易的事,其他的已经花了不少时间了,你可以看看QEmu。当前的一个项目是使用 Qemu 来模拟基于 Cortex M3 的开发板ZephyrProject。
中间步骤可能是使用已经理解/解码 hex 或 bin 文件的工具,Radare就是其中一种工具。有了它,您将能够反汇编许多 elf 文件并从中获取说明(然后您必须模拟;))。
也就是说,如果您仍然真的想要/需要进行仿真,并开始阅读和理解 hex 或二进制文件,首先要做的是研究 Intel Hex 文件格式(是的,即使 ARM 也在使用这种 Intel 格式;) )。您可以在此处或在ARM 的技术支持网站中找到官方规范。
玩得开心 ;)
于 2017-08-02T08:44:58.190 回答