1.注册bitbucket账号

进入官网,注册即可,记住你的用户名及邮箱,在后面会用到。

2.获取NVMain使用权

打开https://bitbucket.org/mrp5060/nvmain/并登陆bitbucket账号,登陆后重新打开前面这个网站获取下载命令
我的命令是:

hg clone https://jason_lee2419@bitbucket.org/mrp5060/nvmain

3.安装Mercurial

需要用到一个轻量级的源代码控制管理工具:Mercurial。

apt-get install mercurial

4.安装Gem5和NVMain

使用命令获取Gem5。

hg clone http://repo.gem5.org/gem5

使用第二步获得的下载命令下载NVMain。
即:

hg clone https://jason_lee2419@bitbucket.org/mrp5060/nvmain

(此时gem5和NVMain在同一父目录下),如下图:

千万不要把nvmain的文件夹放到gem5的文件夹里面。

5.配置hgrc文件

使用在Gem5根目录下用命令编辑.hg文件夹下的hgrc文件,将其中的username改成自己的信息。
这个信息就是在第一步注册时你填写的用户名和邮箱。

vim .hg/hrgc

我的文件修改是这样的:

[ui]
# name and email (local to this repository, optional), e.g.
username = jason <lijiaqi_jason@163.com>
[extensions]
hgext.mq=

主要注意的是,要启动mq拓展模块,如果不启用该模块,在第六步hg qinit时会报错。

6.安装补丁

这一步是最复杂的一步。出错一般在这一步。

1)进入Gem5目录中,使用命令初始化补丁目录。

hg qinit

2)使用命令输入补丁,后面的地址是NVMain的补丁存放地址(补丁的文件名会随着版本变化,自己进入文件夹看一下)。

hg qimport -f ../nvmain/patches/gem5/nvmain2-gem5-11688+

3)安装补丁

hg qpush

7.联合编译Gem5和NVMain

使用命令编译,时间会很久。

scons EXTRAS=../nvmain ./build/X86/gem5.opt  -j4

8.运行

在编译完成后你会发现Gem5的mem-type多出了一个选项NVMainMemory。

使用命令 --mem-type=NVMainMemory --nvmain-config=/path/to/nvmain.config运行。

例子:

./buildX86/gem5.opt ./configs/example/se.py -c ./tests/test-progs/hello/bin/x86/linux/hello --mem-type=NVMainMemory --nvmain-config=../nvmain/Config/3D_DRAM_example.config

gem5+NVMain联合编译相关推荐

  1. gem5+nvmain混合编译

    在已经安装编译完成gem5的基础上进行 如果还没有安装gem5转到https://blog.csdn.net/Roben_/article/details/109499569 先下载nvmain到ge ...

  2. Gem5与NVMain混合编译(一)

    gem5的安装与使用 1. 安装各类库文件(ubuntu) sudo apt-get install mercurial scons swig gcc m4 python python-dev lib ...

  3. GCC跟NASM联合编译

    GCC跟NASM联合编译 GCC和NASM联合编译 GCC和NASM GCC不用说,C语言的编译器.NASM是一个x86的汇编器,用来编译汇编的.最近在研究GCC和NASM联合编译,为什么要研究二者的 ...

  4. opencv、opencv_contrib及cuda联合编译详细教程

    opencv.opencv_contrib及cuda联合编译详细教程 最近在使用opencv时需要用cuda加速,网上了很多帖子,踩了很多雷,摸索出来了一点规律,分享给大家,一起探讨(我也是刚刚入手, ...

  5. gdal联合编译C++版本proj.4、geos、hdf4、hdf5、netcdf

    联合编译C++版本gdal编译过程文档 gdal联合编译C++版本proj.4.geos.hdf4.hdf5.netcdf 各依赖库源代码版本及下载地址 gdal Proj.4 geos HDF4 H ...

  6. mysql netcdf_gdal联合编译C++版本proj.4、geos、hdf4、hdf5、netcdf

    联合编译C++版本gdal编译过程文档 gdal联合编译C++版本proj.4.geos.hdf4.hdf5.netcdf 各依赖库源代码版本及下载地址 gdal Proj.4 geos HDF4 H ...

  7. FAT12文件系统镜像查看工具linux下的实现(nasm、g++联合编译

    FAT12文件系统镜像查看工具linux下的实现(nasm.g++联合编译) 简介 构思简介 附加链接 最终实现截图 代码 Makefile代码 my_print.asm代码 main.cpp代码 简 ...

  8. Matlab 2019a 与 Visual Studio 2017 联合编译

    因为要用NYU V2 ToolBox中的 深度补全 功能,所以接触到了如题的点.如下图所示,ToolBox代码有放在Matlab中运行的 .m 文件,也有经典的 .cpp 文件.简单科普一下,因为 C ...

  9. gem5和nvmain混合编译

    由于做混合内存,需要使用nvmain来做NVM的模拟,使用gem5做全系统的仿真,两者结合使用. 1.安装gem5 gem5的安装,包括相关依赖环境的安装见我的另外一篇博客:gem5的安装.编译及运行 ...

最新文章

  1. 软件工程个人项目——买书的最低价格
  2. Qt-窗口消息处理机制及拦截消息的五种方法
  3. html5响应式网站建设网络类织梦模板
  4. 解决 No utmpx entry. You must exec login from the lowest level shell.
  5. win7开机动画_win7系统怎么修改开机动画 win7系统开机动画修改方法
  6. matlab 模拟电磁学时域有限差分法,MATLAB模拟的电磁学时域有限差分法
  7. 极速PyQt5基础教程06:QtDesigner设计软件界面
  8. 区块链学习2——区块链浏览器的搭建
  9. Oracle语句详解
  10. 【Azure 应用服务】NodeJS Express + MSAL 应用实现AAD登录并获取AccessToken -- cca.acquireTokenByCode(tokenRequest)
  11. textarea研究
  12. 6410同时支持colorkey和aphablend
  13. 最实用的IT类网站及工具大集合[转]
  14. 总结二:底部导航栏的实现
  15. educoder 5-4Python计算思维训练——数组进阶之线性代数(答案)
  16. ChatPDF,PDF操作一键完成!
  17. 远光ECP,你的梦想建造师
  18. 基于Matlab计算天线阵列方向图和绘制方向图
  19. linux获取网卡广播ip,获得本机所有网卡的IP,MASK,广播地址
  20. linux系统的迷你电脑,迷你电脑来袭:市场中10款最小的电脑

热门文章

  1. 视频会议系统——多分屏
  2. 精简BLL业务层,使用范型复用常用方法
  3. java 获取操作系统的参数_JAVA获取系统变量
  4. 移民加拿大,你们后悔了么?
  5. 【AU】单链表就地逆置
  6. 劳合社和伦敦市场保险公司携手DXC Technology推动世界首屈一指的保险市场转型
  7. SHH 工具 隧道窗格
  8. 首屏优化,减少白屏时间
  9. 《笑傲江湖》一共有几个版本? -- 影评
  10. 《快速软件开发》读书心得