代码之家  ›  专栏  ›  技术社区  ›  Ciro Santilli

如何在GEM5中启用ARM半宿主?

  •  0
  • Ciro Santilli  · 技术社区  · 7 年前

    我尝试运行一个半宿主退出指令,该指令用于qemu:

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

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ciro Santilli    7 年前

    截至7FB7F3A43F382EB49853F47B140BFD6CAAD0FB8(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 .

    推荐文章