ArmIE的安装
时间:2019-09-27
本文章向大家介绍ArmIE的安装,主要包括ArmIE的安装使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
运行环境: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-19.2_Generic-AArch64_Ubuntu-16.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.0
---------------------------------------------------------- /usr/share/modules/versions -----------------------------------------------------------
3.2.10
--------------------------------------------------------- /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:~$
第六步、测试
pengdl@firefly:~$ armie
Execute binaries containing SVE instructions on Armv8-A hardware
Usage:
armie [emulation parameters] -- <command to execute>
Examples:
armie -msve-vector-bits=256 -- ./sve_program
armie -msve-vector-bits=2048 --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 128 bits up to 2048 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
完。
原文地址:https://www.cnblogs.com/pengdonglin137/p/11596221.html
- java调用.net asmx / wcf
- mybatis3.2.8 与 hibernate4.3.6 混用
- mybatis的物理分页:mybatis-paginator
- 使用 WMI 进行诊断WCF
- java:快速文件分割及合并
- 暴涨210倍的一个数字货币正悄无声息崛起
- QT Creator 快速入门教程 读书笔记(一)
- .NET程序优化(GCServer )
- redis 学习笔记(4)-HA高可用方案Sentinel配置
- oracle: job使用
- velocity模板引擎学习(2)-velocity tools 2.0
- java:如何用代码控制H2 Database启动
- 游戏开发完整学习路线(各个版本都有)
- spring mvc4:异常处理
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- springboot开发之删除员工
- LeetCode | 1.两数之和
- springboot开发之配置嵌入式Servlet容器两种方式
- jvaa之初始化块
- java之匿名内部类
- springboot配置之获取配置文件中属性的第二种方法(@Value)不同于@ConfigurationProperties
- mybatis动态sql之内置参数_parameter和_databaseId
- Redis | Redis 字符串相关命令
- java之抽象类
- springboot配置之yaml
- properties和yaml配置文件
- java之模板方法设计模式
- java之接口
- PHP 代码混淆处理思路
- java之工厂方法设计模式