1

我希望m5 readfile会从主机读取文件,并m5 execfile从主机执行文件,但文档很少,我无法让它们工作。

也许路径是由readfile=in确定的m5out/config.ini,但我不知道在使用时如何修改该设置fs.py;当我重新启动 gem5 时,它会覆盖该文件。

我能够使用相关m5 writefile但是:

来宾:

echo mycontent > myfileguest
m5 writefile myfileguest myfilehost

主持人:

cat m5out/myfilehost
4

1 回答 1

1

readfile

从 gem5 68af229490fc811aebddf68b3e2e09e63a5fa475 开始,您可以readfile使用以下命令设置路径:

fs.py --script=myfile

与 不同writefile,路径是相对于主机上的当前目录,而不是m5out.

然后当您m5 readfile在来宾中运行时,它将文件的内容输出到标准输出。

这在fs.py脚本中执行:

if options.script is not None:
    test_sys.readfile = options.script

这似乎继承自class System,最终将配置序列化为config.ini仅用于调试目的。

执行文件

execfile只是一个非常轻量级的包装器readfile,它不是将输入文件写入标准输出,而是将其写入,然后从 C 中/tmp/execfile运行系统调用。exec

但是,从 68af229490fc811aebddf68b3e2e09e63a5fa475 开始,m5不会:

  • 打开文件O_CREAT
  • 设置适当的可执行权限

所以你必须对客人做:

touch /tmp/execfile
chmod +x /tmp/execfile
m5 execfile

我宁愿用m5 readfile一些脚本来做到这一点。

m5 execfile然而,作为一个程序可能很有用init,但我发现传递给 init 程序的参数太笨拙和不可靠。

于 2018-03-28T15:05:41.833 回答