我有一个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 SIMULATION START问题,读取inputA.txt文件时出现问题,因为在最后一个活动线程上下文中退出,所以正在退出@滴答9053500模拟的退出代码不为0!退出代码为1
消息GEM5仿真开始和问题阅读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文件则表明问题出在读取表单文本文件期间。
我的问题是如何在GEM-5模拟器中运行文件。
这里,我上传了完整的项目,但自述文件中没有任何描述。 github.com/riazcseiu/DecimalMultiplication.git
[常规编译并运行在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中模拟的内核进行更复杂的交互。