一、创建一个python类描述模块
python:"NewObject.py"
导入gem5的参数与基本对象simobject,创建一个NewObject类,type通常与类名称一致,cxx_header为头文件路径,还可自定义所需参数
from m5.params import *
from m5.SimObject import SimObject
class NewObject(SimObject):
type = 'NewObject'
cxx_header = "/path/to/head.hh"
#parameters
a=Param.Latency("latency")
二、创建对象
头文件:“head.hh”
其中a的值,可以由上面python文件里面设定
#include "params/NewObject.hh"
#include "sim/sim_object.hh"
class NewObject:public SimObject
{
public:
NewObject(const NewObjectParams ¶ms);
~NewObject();
void Hello();
Tick a;
}
源文件:“head.cc”
#include "head.hh"
NewObject::NewObject(const NewObjectParams ¶ms)
:SimObject(params)
,a(params.latency)
{
DPRINTFN("Creat NewObject \n");
}
void NewObject::Hello(){
DPRINTFN("Hello World\n");
}
三、创建一个SConscript文件,编译定义的Object
Import('*')
SimObject('NewObject.py')
Source('head.cc')
四、重新编译gem5
scons build/ARM/gem5.opt EXTRAS=/PATH/to/src
五、配置脚本运行