参考:https://developer.arm.com/tools-and-software/server-and-hpc/arm-architecture-tools/arm-instruction-emulator/installing-arm-instruction-emulator

运行环境:Qemu+arm64版本的ubuntu16.04

  前面一篇博客使用Qemu运行Ubuntu文件系统 —— 搭建SVE学习环境(2)中才Qemu上运行了一个ubuntu16.04的系统,然后再在其中安装了ArmIE,来模拟SVE指令的执行。下面简单介绍一下ArmIE的安装方法,关于ArmIE的详细介绍,请参考ARM官网:Arm Instruction Emulator

第一步,安装module软件包(链接

sudo apt-get install environment-modules

第二步、下载ArmIE安装包(链接

  可以到这里下载ArmIE安装包,这里下载ARM-Instruction-Emulator_19.2_AArch64_Ubuntu_16.04_aarch64.tar.gz

  

第三步、解压安装ArmIE

tar -xvf  ARM-Instruction-Emulator_19.2_AArch64_Ubuntu_16.04_aarch64.tar.gz 

cd ARM-Instruction-Emulator_19.2_AArch64_Ubuntu_16.04_aarch64

sudo ./arm-instruction-emulator-.2_Generic-AArch64_Ubuntu-.04_aarch64-linux-deb.sh

  默认会安装到/opt/arm下,也可以通过参数-i换成别的安装路径

第四步、设置环境变量MODULEPATH

export MODULEPATH=$MODULEPATH:/opt/arm/modulefiles/

第五步、重新登录系统,使用module查看哪些模块,并加载ArmIE模块

pengdl@firefly:~$ module avail

-------------------------------------------------------------- /opt/arm/modulefiles --------------------------------------------------------------
Generic-AArch64/Ubuntu/16.04/arm-instruction-emulator/19.2 Generic-AArch64/Ubuntu/16.04/gcc_runtimes/8.2. ---------------------------------------------------------- /usr/share/modules/versions -----------------------------------------------------------
3.2. --------------------------------------------------------- /usr/share/modules/modulefiles ---------------------------------------------------------
dot module-git module-info modules null use.own ------------------------------------------------------------- /opt/arm/modulefiles/ --------------------------------------------------------------
Generic-AArch64/Ubuntu/16.04/arm-instruction-emulator/19.2 Generic-AArch64/Ubuntu/16.04/gcc_runtimes/8.2.0 pengdl@firefly:~$ module load Generic-AArch64/Ubuntu/16.04/arm-instruction-emulator/19.2
pengdl@firefly:~$ echo $PATH
/opt/arm/arm-instruction-emulator-19.2_Generic-AArch64_Ubuntu-16.04_aarch64-linux/bin64:/home/pengdl/bin:/home/pengdl/.local/bin:/home/pengdl/sve_acle_cross/bin:/opt/gstreamer/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
pengdl@firefly:~$

为了实现以后每次开机都可以直接使用ArmIE,可以将 module load Generic-AArch64/Ubuntu/16.04/arm-instruction-emulator/19.2 加到.bashrc中。

第六步、测试

pengdl@firefly:~$ armie
Execute binaries containing SVE instructions on Armv8-A hardware Usage:
armie [emulation parameters] -- <command to execute> Examples:
armie -msve-vector-bits= -- ./sve_program
armie -msve-vector-bits= --iclient libinscount.so -- ./sve_program --opt foo
armie -e libmemtrace_sve_512.so -i libmemtrace_simple.so -- ./sve_program Flags:
-m<string> Architecture specific options. Supported options:
-msve-vector-bits=<uint> Vector length to use. Must be a multiple of bits up to bits
-mlist-vector-lengths List all valid vector lengths
-e, --eclient <client> An emulation client based on the DynamoRIO API
If this is not specified, the default SVE client is used
-i, --iclient <client> An instrumentation client based on the DynamoRIO API
-x, --unsafe-ldstex Enables a workaround which avoids an exclusive load/store bug on certain AArch64 hardware
(See 'Known Issues' in RELEASE_NOTES.txt for details)
-s, --show-drrun-cmd Writes the full DynamoRIO drrun command used to execute ArmIE to stderr
This can be useful when debugging or developing clients
-h, --help Prints this help message
-V, --version Prints the version

完。

ArmIE的安装的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法

    如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...

  3. Sublime Text3安装JsHint

    介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...

  4. Fabio 安装和简单使用

    Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...

  5. gentoo 安装

    加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...

  6. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  7. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  8. 【原】nodejs全局安装和本地安装的区别

    来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...

  9. tLinux 2.2下安装Mono 4.8

    Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...

随机推荐

  1. yum 初始化国内

    修改为阿里源备份默认的yum源文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下载阿里 ...

  2. js 浮点型运算出错的原因和解决方法

    在工作中经常需要进行数字运算,当然也会遇到浮点型数字的运算,但是运算结果却并不是想要. 这种小孩子都会做的简单运算,强大的计算居然算算错?原来,计算机的运算都需要转成二制运算,而二进制和实现位数限制有 ...

  3. Attention篇(一)

    主要是阅读以下博文的总结: https://zhuanlan.zhihu.com/p/31547842 https://www.zhihu.com/question/68482809/answer/2 ...

  4. B1047 编程团体赛 (20 分)

    一.参考代码 #include<iostream> #include<cstring> using namespace std; int hashTable[1010]; in ...

  5. Web协议详解与抓包实战:HTTP1协议-HTTP 响应行(3)

    一.HTTP 响应行 二.响应码分类:1xx 三.响应码分类: 2xx 1. 201 Created: 有新资源在服务器端被成功创建 2.207 Multi-Status:RFC4918 ,在 WEB ...

  6. Scala词法文法解析器 (二)分析C++类的声明

    最近一直在学习Scala语言,偶然发现其Parser模块功能强大,乃为BNF而设计.啥是BNF,读大学的时候在课本上见过,那时候只觉得这个东西太深奥.没想到所有的计算机语言都是基于BNF而定义的一套规 ...

  7. JMM与happens-before

    happens-before是JMM最核心的概念,理解happens-before是理解JMM的关键. 一.JMM的设计 首先,让我们先分析一下JMM的设计意图.从JMM的设计者的角度,在设计JMM的 ...

  8. kubernetes实战(九):k8s集群动态存储管理GlusterFS及使用Heketi扩容GlusterFS集群

    1.准备工作 所有节点安装GFS客户端 yum install glusterfs glusterfs-fuse -y 如果不是所有节点要部署GFS管理服务,就在需要部署的节点上打上标签 [root@ ...

  9. Mocha测试框架,保证代码质量

    mocha mocha是JavaScript的一种单元测试框架,既可以在浏览器环境下运行,也可以在Node.js环境下运行. 使用mocha,我们就只需要专注于编写单元测试本身,然后,让mocha去自 ...

  10. CountdownLatch例子

    CountdownLatch 一个线程或者多个线程等待其他线程完成了再接着往下执行 public class CountDownLatchTest { ); private static Random ...