为了用更方便的IDE开发复杂的gem5 python配置脚本,必须在项目中加入gem5库。然而,对于那些不是python和Pycharm专家的人(比如我自己)来说,会有一些困难。
对于那些不熟悉gem5的人,这里有一个简短的解释。
gem5是一个检查硬件架构的开源模拟器。它可以从github下载。链接到github. 安装过程描述如下 联系.
<gem5_installation_dir>/gem5/configs/learning_gem5/part1
在上面的路径里面,有一个基本的python脚本文件:simple.py 这个文件包含了一些导入。用Pycharm编辑这个文件需要一些依赖关系,这些依赖关系位于gem5安装目录中。问题是 1) 如何将gem5的那些依赖关系添加到Pycharm中? 2)如何用gem5执行命令配置Pycharm?
希望得到任何帮助。
从我在gem5 d9cb548d83fa81858599807f54b52e5be35a6b03(2020年5月)下看到的几个要点。gem5/configs/learning_gem5/part1/two_level.py
:
from common
* 共同点在 configs/common
因为上述原因而被发现 m5.util.addToPath('../../')
呼叫 configs/
到PYTHONPATH,如图所示。PyCharm和PYTHONPATH。
import m5
来自 src/python/m5
所以加 src/python
到上面的PYTHONPATH。
from caches import *
来自同胞 learning_gem5/part1/caches.py
所以很可能PyCharm会自动找到这个目录。否则将该目录添加到PYTHONPATH中。
from m5.objects import *
PYTHONPATH:这很可能是你真正感兴趣的目录,因为它包含了所有有趣的对象,但不幸的是,我相信PyCharm根本无法处理它,因为SimObjects是在启动时通过PyBind11本地模块+代码生成以一种非常复杂的方式动态添加到该命名空间的。
更详细的工作原理描述 可以在这里找到但基本上每个SimObject类都要经过一些繁重的代码自动生成来实现这个功能,例如 src/cpu/simple/AtomicSimpleCPU.py
由于 SimObject('AtomicSimpleCPU.py')
在 src/cpu/simple/SConscript
.
截至2017年,PyCharm表示,他们没有计划进行适当的原生CC++扩展设置。https:/intellij-support.jetbrains.comhcen-uscommunityposts206018984-Developing-Python-extension-in-C-using-PyCharm。
说到这里,我发现gem5的Python部分不值得使用IDE。这是因为Python往往是非常简单易懂的。与IPDB (或者说不可能设置一个IDE),而如果你只需要 grep
的东西,你往往很快就能猜到是怎么回事。不过对于C++来说,我确实建议设置Eclipse。如何为gem5开发设置Eclipse IDE?