如何在gem5中启用ARM半主机?

2023-12-07

我尝试运行在 QEMU 上运行的半主机退出指令:

mov r0, #0x18
ldr r1, =#0x20026
svc 0x00123456

但是gem5似乎没有正确处理它并崩溃了。


以下补丁将其添加到 baremetal.py,但不添加到 fs.py(2020 年 3 月):https://gem5-review.googlesource.com/c/public/gem5/+/26993/4

自 7bfb7f3a43f382eb49853f47b140bfd6caad0fb8(2018 年 9 月)起fs.py你可以应用补丁:

diff --git a/configs/example/fs.py b/configs/example/fs.py
index 3997ed76c..43bebcd66 100644
--- a/configs/example/fs.py
+++ b/configs/example/fs.py
@@ -376,5 +376,7 @@ if buildEnv['TARGET_ISA'] == "arm" and options.generate_dtb:
             sys = getattr(root, sysname)
             sys.dtb_filename = create_dtb_for_system(sys, '%s.dtb' % sysname)

+from m5.objects import ArmSemihosting
+test_sys.semihosting = ArmSemihosting()
 Simulation.setWorkCountOptions(test_sys, options)
 Simulation.run(options, root, test_sys, FutureClass)

应该与任何其他脚本类似,您只需连接这个新的SimObject.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在gem5中启用ARM半主机? 的相关文章