我有一个C代码,它使用两个输入文件中的值来计算乘法并将时间写到另一个文本文件中。首先,我使用GCC进行编译并使其可执行,名称为Method1_X86_BINARY _
gcc DecMulTimeMeasure.c decContext.c decDouble.c decQuad.c -o Method1_X86_BINARY _
可执行文件正在运行./Method1_X86_BINARY_文件! 现在我想通过波纹管命令使用gem5 SE模式进行编译
./ build / X86 / gem5.opt configs / example / se.py -c tests / test-progs / hello / bin / x86 / linux / Method1_X86_BINARY _
此后,我收到以下错误消息
GEM5模拟启动问题,读取inputA.txt文件时退出@刻度9053500,因为在最后一个活动线程上下文中退出 模拟的退出代码不为0!退出代码为1
消息 GEM5 SIMULATION START 和 读取inputA.txt文件 的问题显示在下面的我的C代码中:
>FILE *ptr_file_read, *ptr_file_readB,*ptr_file_write , *Mptr_file_write;
char fileNameA [40] = "final_result_a.txt";
char fileNameB [40] = "final_result_b.txt";
printf("GEM5 SIMULATION START");
ptr_file_read = fopen(fileNameA, "r"); //Name of the input file
if (!ptr_file_read)
{
printf("problem reading inputA.txt file");
return 1;
}
因此,消息 GEM5 SIMULATION START 表示可执行文件正常,而消息 问题是读取inputA.txt文件 < / strong>表示问题出在读取表单文本文件期间。
我的问题是如何在GEM-5模拟器中运行文件。
在这里,我上传了完整的项目,但自述文件中没有任何描述。 github.com/riazcseiu/DecimalMultiplication.git
答案 0 :(得分:0)
常规编译和运行显示在How to compile and run an executable in gem5 syscall emulation mode with se.py?
然后,我在gem5 211869ea950f3cc3116655f06b1d46d3fa39fb3a中进行测试(2019年10月),打开和关闭或常规文件都正常工作:可以从主机读取文件,并将其正常写入主机文件系统。
我已经用this minimal C file write / read example对此进行了测试。
src/doc/se-files.txt文件记录了此功能的实现。
我相信gem5然后会处理一些特殊的Linux文件,例如在/proc
和/sys
下特别有用,因为它们需要与gem5在SE中模拟的内核进行更复杂的交互。