为了用更方便的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?
任何帮助都将不胜感激。
发布于 2020-05-07 11:12:00
我在gem5 d9cb548d83fa81858599807f54b52e5be35a6b03 (2020年5月)在gem5/configs/learning_gem5/part1/two_level.py下看到的几点建议
from common:configs/common是公共的,这是由于上面的m5.util.addToPath('../../')调用而找到的,所以将configs/添加到PYTHONPATH,如import m5来自于src/python/m5,因此将src/python添加到PYTHONPATH,如下所示from caches import *来自同级learning_gem5/part1/caches.py,因此PyCharm很可能会自动找到它。否则,将该目录添加到PYTHONPATH。from m5.objects import *:这可能是您真正感兴趣的对象,因为它包含所有有趣的对象,但不幸的是,PyCharm无法处理它,因为在启动时,SimObjects是通过PyBind11本地模块+代码生成以非常复杂的方式动态添加到该名称空间的。
更详细地描述了可以在这里找到的工作原理,但基本上每个SimObject类都经历了一些繁重的代码自动生成来实现这一工作,例如,由于src/cpu/simple/SConscript中的SimObject('AtomicSimpleCPU.py')而产生的src/cpu/simple/AtomicSimpleCPU.py。
到2017年,PyCharm说他们没有计划建立一个适当的本地C/C++扩展设置:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206018984-Developing-Python-extension-in-C-using-PyCharm尽管如此,我发现为gem5的Python部分使用IDE是不值得的。这是因为Python往往很容易理解与IPDB (或者不可能为其设置IDE ),而且如果您只使用grep,那么您可能很快就会猜到发生了什么。不过,对于C++,我建议您设置Eclipse:如何为gem5开发设置Eclipse?
https://stackoverflow.com/questions/51982735
复制相似问题