我有一个C应用程序,该应用程序正在使用Gem5操作中的函数“ m5_dumpreset_stats()”。
因此,我做了以下工作,包括了该函数的头文件:
#include "../gem5-stable/util/m5/m5op.h"
然后在我的源文件中调用了该函数:
void foo()
{
m5_dumpreset_stats(0,0);
/* For loop */
m5_dumpreset_stats(0,0);
}
要构建我的项目,我使用的是Makefile:
CC=arm-linux-gnueabi-gcc
CFLAGS=-g -c -Wall -O3 -mfpu=neon
LDFLAGS=-static
SOURCES=$ foo.c
OBJECTS=$(SOURCES:.c=.o)
EXECUTABLE=foo
all: $(TASKMAP) $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -lm -o $@
.c.o:
$(CC) $(CFLAGS) $< -lm -o $@
clean:
rm -fr $(OBJECTS) $(EXECUTABLE)
我的第一个猜测是我必须使用Makefile链接库,但是老实说,我不知道怎么做?有人可以告诉我正确的方法吗?
PS:m5_dumpreset_stats(delay,period):将模拟统计信息保存并重置到文件中,延迟时间为纳秒;每隔十亿分之一秒重复一次。
感谢你的贡献。这是我的解决方案:看到我使用ARM内核进行仿真,使用Makefile.arm生成一个名为“ m5”的库,然后我必须对自己的Makefile进行以下更改:
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -lm -L"/home/anoir/gem5-stable/util/m5" -lm5 -o $@
并且我将包含的内容保存在头文件中,这样调用m5op.h:
#include "/home/anoir/gem5-stable/util/m5/m5op.h"
最后,我已经在模拟器中对其进行了测试,并检查了stats文件,并且可以正常工作。谢谢。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句