问题描述
gem5中有许多可能和可选的选择。例如,我可以通过--debug-help
命令显示--debug-flags
分配的所有可能的调试选项。但是我怎么知道--cpu-type
分配的可选选项是否有像--cpu-type-help
这样的命令来显示--cpu-type
的可选分配?我运行了gem5.opt help
的命令,但没有看到关于--cpu-type
的介绍。
解决方法
除了Ciro's answer外,还有多次命令列出了对象类型的可能值,而无需提供随机值。例如,在--cpu-type
的情况下,有一个--list-cpu-types
可以完全满足您的要求,而无需额外的(随机)参数。
通常,这些命令采用--list-x-types
格式,其函数回调定义在文件 configs / common / Options.py 的开头(例如,对于CPU类型,是_listCpuTypes
)。
添加更多列表就像为选定的基类添加相应的ObjectList
( configs / common / ObjectList.py )实例一样容易。例如,this patch将先前的代码移植给预取程序以使用ObjectList
。
对于--cpu-type
,如果您在CLI上键入任何错误的值,例如:
--cpu-type adsf
错误消息显示可能的选择:
fs.py: error: option --cpu-type: invalid choice: 'asfd' (choose from 'O3_ARM_v7a_3','AtomicSimpleCPU','TraceCPU','ex5_big','DerivO3CPU','MinorCPU','HPI','ex5_LITTLE','NonCachingSimpleCPU','TimingSimpleCPU')
这也可以从源代码(configs / common / Options.py)中轻松看到:
parser.add_option("--cpu-type",type="choice",default="AtomicSimpleCPU",choices=ObjectList.cpu_list.get_names(),
其中cpu_list
定义为(configs / common / ObjectList.py):
cpu_list = CPUList(getattr(m5.objects,'BaseCPU',None))
我们从中推断出有效的选择是BaseCPU
派生的类。
gem5 6bc2111c9674d0c8db22f6a6adcc00e49625aabd。