Skip to content

是否通过ramdisk加载比赛测例问题 #23

@Azure-stars

Description

@Azure-stars

背景

通过makefile的IMG features来判断是否将比赛测例加载到内核内存中。

  • 若IMG=y,此时认为通过qemu运行测例,因此不必启动ramdisk,而是通过virt-io即可访问外部测例镜像。
  • 若IMG=n,此时认为通过开发板运行,需要启动ramdisk,因此要手动通过tftp等操作将测例镜像加载到指定内存地址(常为0x9000_0000),并将该地址设置为ramdisk读取的地址即可。

当前问题

在比赛时为了方便调试,会在IMG=y的时候,将测例镜像直接加载在内核镜像中某一个地址addr,然后手动设置页表映射,将0x9000_0000映射到该地址addr,从而检验内核读取ramdisk的功能是否正常。但是在完成比赛之后,该方法会显得十分冗余。因此需要做如下改进:

  1. 设置在IMG=y的时候不启动ramdisk,仅启动virt-io;在IMG=n的时候启动ramdisk,不启动virt-io。
  2. 设置在IMG=y的时候不使用页表映射,而是通过qemu挂载的形式去读取外部镜像

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions