4

为了使用更方便的 IDE 开发复杂的 gem5 python 配置脚本,必须将 gem5 库添加到项目中。但是,对于那些不是 python 和 Pycharm 专家的人(比如我自己)来说,有一些困难。

对于不熟悉 gem5 的人,这里是一个简短的解释:

gem5 是一个检查硬件架构的开源模拟器。可以从 github 下载:link to github。安装过程在以下链接中进行了描述。

<gem5_installation_dir>/gem5/configs/learning_gem5/part1

在上面的路径中,有一个基本的 python 脚本文件: simple.py 这个文件包含一些导入。使用 Pycharm 编辑此文件需要一些位于 gem5 安装目录中的依赖项。问题:1)如何将gem5的这些依赖项添加到Pycharm中?
2) 如何使用 gem5 执行命令配置 Pycharm?

任何帮助,将不胜感激。

4

1 回答 1

1

我在 gem5 d9cb548d83fa81858599807f54b52e5be35a6b03 (2020 年 5 月)看到的一些提示gem5/configs/learning_gem5/part1/two_level.py

  • from common: 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 *:这可能是您真正感兴趣的,因为它包含所有有趣的对象,但不幸的是,我相信 PyCharm 根本无法处理它,因为 SimObjects 在启动时通过 PyBind11 本机模块 + 代码以非常复杂的方式动态添加到该命名空间一代。

    可以在此处找到有关其工作原理的更详细说明,但基本上每个 SimObject 类都会经历一些繁重的代码自动生成才能使其工作,例如src/cpu/simple/AtomicSimpleCPU.py 由于SimObject('AtomicSimpleCPU.py')in src/cpu/simple/SConscript

    截至 2017 年,PyCharm 表示他们没有计划进行适当的原生 C/C++ 扩展设置:https ://intellij-support.jetbrains.com/hc/en-us/community/posts/206018984-Developing-Python-extension -in-C-using-PyCharm

话虽如此,我发现将 IDE 用于 gem5 的 Python 部分是不值得的。这是因为 Python 往往很容易通过 IPDB来理解(或者无法为其设置 IDE),而且如果你只是简单的grep东西,你往往会很快猜到发生了什么。对于 C++,虽然我建议设置 Eclipse:How to setup Eclipse IDE for gem5 development?

相关:将自定义模块添加到 PyCharm Linter

于 2020-05-07T11:12:00.477 回答