SimArm 库说明
版本:1.0
版本历史
版本号
时间
说明
1.00.1
2015/08/15
首次发布
1.01.2
2015/09/21
增加指令高速缓存实现,整体提速;
增加申请多个 CPU 核心的实现;
增加复位 CPU 核心的实现
目录
版本历史 ................................................................................................................................... 2
1 SimArm 简介 ..................................................................................................................... 5
1.1 SimArm 目标说明 ...................................................................................................... 5
1.2 SimArm 授权说明 ...................................................................................................... 5
1.3 SimArm 版本定义说明 .............................................................................................. 5
1.4 SimArm 规格说明 ...................................................................................................... 6
1.5 SimArm 运行环境需求 .............................................................................................. 6
1.6 SimArm 支持和联系方式 .......................................................................................... 7
2 SimArm 使用流程 ............................................................................................................. 7
3 SimArm 接口说明 ............................................................................................................. 7
3.1 头文件说明 ................................................................................................................ 7
3.2 申请内核 ArmSimAcquireCore.............................................................................. 7
3.3 释放内核 ArmSimReleaseCore.............................................................................. 8
3.4 复位内核 ArmSimResetCore ..................................................................................... 8
3.5 映射内存 ArmSimMemMapAddr ................................................................................ 9
3.6 配置仿真内核 ArmSimSetConfig ........................................................................ 10
3.7 获取仿真内核的属性配置 ArmSimGetConfig .................................................... 10
3.8 对仿真内核的数据总线进行读操作 ArmSimDBusRead ...................................... 11
3.9 对仿真内核的指令总线进行读操作 ArmSimIBusRead ...................................... 12
3.10 对仿真内核的数据总线进行写操作 ArmSimBusWrite .................................. 13
3.11 对仿真内核的寄存器进行写操作 ArmSimSetReg ........................................... 13
3.12 对仿真内核的寄存器进行读操作 ArmSimGetReg ........................................... 14
3.13 启动仿真内核的执行流水线 ArmSimStartCore ............................................ 15
3.14 停止仿真内核的执行流水线 ArmSimStopCore .............................................. 15
3.15 检查仿真内核的执行流水线是否在运行 ArmSimIsRunning ........................ 16
3.16 触发一个仿真内核的异常 ArmSimPendException ....................................... 16
3.17 反汇编 ArmSimDisasm ....................................................................................... 17
3.18 无效化仿真内核中的所有指令高速缓存 ArmSimInvliadICacheAll ......... 17
3.19 无效化仿真内核中某一地址范围的指令高速缓存 ArmSimInvliadICache 18
3.20 无效化仿真内核中某一高速缓存线的指令高速缓存
ArmSimInvliadICacheLine........................................................................................... 18
3.21 查询异常处理程序地址的回调函数 TFnQueryExceptAddr ............................... 19
3.22 总线读操作监视的回调函数 TFnDBusRWatch 和 TFnIBusRWatch ................... 20
3.23 数据总线写操作监视的回调函数 TFnDBusWWatch ......................................... 20
3.24 流水线监视的回调函数 TFnPipeLineWatch ....................................................... 21
4 常见用法说明 ................................................................................................................. 22
4.1 如何实现代码断点 .................................................................................................. 22
4.2 总线监视回调函数的用途 ...................................................................................... 22
4.3 如何实现仿真内核中运行的 ARM 程序与宿主机上程序的交互 ......................... 22
1 SimArm 简介
1.1 SimArm 目标说明
SimArm 是一款 ARM 处理器的仿真内核库。该仿真内核库的目标在于实现 ARM
处理的 ISA 模拟,包括 ARM 指令集和 Thumb 指令集。该库并不完成 CPU 仿真的
所有功能。但该库提供扩展接口,用于基于该库之上模拟完整 CPU 或模拟软件调
试环境。
该仿真内核库的实现标准依据自 ARM 公司发布的《ARM Architecture
Reference Manual》2000 年 6 月发布版。
使用者需特别注意:该仿真内核库的主体目标用于软件级仿真,不具备硬件
设备的仿真能力。
1.2 SimArm 授权说明
SimArm 的完整授权说明暂未制定。此处对目前公开的 SimArm 目标文件的授
权进行原则性的说明:
目前公开的 SimArm 目标文件,可免费用于科研及商业领域,但原作者享
有对 SimArm 目标文件使用的知情权,使用 SimArm 目标文件的个人或团
体需将 SimArm 的应用项目及目标通知 SimArm 的原作者;
禁止任何个人或团体对 SimArm 目标文件进行逆向工程或修改,无论此类
行为的初衷是科研还是商业目的。
1.3 SimArm 版本定义说明
SimArm 采用四段版本号显示,格式为 V
a
.V
b
.V
c
.V
d
。
其中:
V
a
:标识 SimArm 的架构设计号,当 SimArm 的主设计模式发生变更时提升;
V
a
:标识 SimArm 的主功能号,当 SimArm 的功能发生大面积更新时提升;
V
a
:标识 SimArm 的子功能号,当 SimArm 的功能发生轻量级更新时提升;
V
d
:标识 SimArm 的发行号,偶数表示版本未稳定,奇数表示版本稳定。