arm fastmodel工具介绍

arm公司,有一款arm指令集仿真工具,名叫fastmodel。该model,可以用来仿真arm的程序,并且打印程序的执行流。不过该工具是收费的。

以下是fastmodel的帮助信息。

clip_image002

其中有用的一些选项:

-a

指定装载的ELF可执行程序

-S

开启CADI
server
,允许modeldebugger
工具调试

-f

指定model的配置文件

-t

打印tarmac文件

fastmodel工具,可以仿真arm的众多架构,众多CPU的指令集,因为需要使用配置文件,对所仿真arm的硬件进行配置。

如以下是一个配置文件的一部分信息:

clip_image004

cpu.NUM_CORES=0X1,
表示仿真硬件,只有1CPU

通过该配置文件,将仿真的ARM硬件进行配置好,然后就可以使用fastmodel工具,进行可程序的仿真。

命令

VAL_VAL_AEMv8A -f cpu_config.cfg -t -a hello.elf > hello.tmc

该命令,载入cpu_config.cfg配置文件,配置硬件环境,然后载入hello.elf可执行程序,进行仿真,并将指令执行结果,打印到hello.tmc文件中。

对于tarmac文件,该文件保存了每条指令的执行结果。

clip_image006

    对于每一条指令,有几个字段:

第一,第二个字段

仿真cycle

第三个字段

指令类型: 

IT   普通指令

IS  跳转指令

第四个字段

当前指令条数

第五个字段

PC值,如果VAPA相等,只会显示一个,

 如果不等,显示为 VA:PA

第六个字段

二进制指令码

第七个字段

架构。  

O   A64架构

A:   A32架构

T   thumb架构

第八个字段

对于AArch64,为exception ELsecure
state

对于AArch32,为exception modesecure
state

第九个字段

反汇编

在每条指令的后面,会显示指令的执行结果。如 mov x0,
#0x30
会将x0的值设置为0x30,因此在指令后一行,会显示x0的值为
0x30.

以上是A64tarmac显示结果。

下面是A32tarmac显示结果。

clip_image008

下面是T32tarmac显示结果。

clip_image010

fastmodel,提供了一个图形化界面,modeldebugger工具,来进行程序的图形化调试。

需要在fastmodel命令中,加入-S选项。开启CADI server

clip_image012

启动modeldebugger工具

clip_image014

选择 connect to
model.

clip_image016

选择刚刚创建的CADI server

clip_image018

会弹出选择界面,选择第一个。

clip_image020

载入之后,就可以仿真了,中间是指令码,右边是系统状态,左下角是变量值,右下角是memory的值。

clip_image022

仿真使用,和其他的仿真工具使用一样了,可以单步,可以设置断点进行仿真。

更多关于fastmodel的信息,可以去arm的官网(http://infocenter.arm.com/help/index.jsp),下载fastmodel的文档进行深入了解。

clip_image024

此条目发表在ARM分类目录,贴了, 标签。将固定链接加入收藏夹。

2 则回应给 arm fastmodel工具介绍

  1. 匿名说:

    VAL_VAL_AEMv8A 这个工具是安装那个软件获取到的呢?

  2. 匿名说:

    请教VAL_VAL_AEMv8A 这个工具是安装那个软件获取到的呢?

匿名进行回复 取消回复

电子邮件地址不会被公开。