我正在使用 QEMU 来模拟 ARM11 CPU。
我的程序太复杂,无法在这里解释,所以我将把这个问题投影到一个更简单的程序中。所以我的程序包含2个c文件:
- 主程序
- some_code.c
我正在编译 some_code.c(到 some_code.o),然后我将它转换为一个 HEX 数组变量,它代表 some_code.c 的代码。
现在我正在链接两个目标文件(main.o 和 some_code.o)。该变量(HEX 数组变量)位于 DATA 段。
现在我从 main.c 中的代码调用 HEX 数组变量(我的意图是此时 some_code.c 的代码将开始执行)。当程序计数器 (PC) 到达 HEX 数组变量时,它会出现异常(我没有关于异常的更多详细信息)。
如果我将这个 HEX 数组变量从 DATA 部分复制到 CODE 部分,现在当 PC 到达这一行时,它可以毫无例外地成功执行它。
所以我的问题是:
- QEMU 对从 DATA 部分执行命令有限制吗?
- 如果是这样,我该如何禁用此限制?
先谢谢了,
暗里