ARMulator作为ARM架构开发者的重要工具,其v1.3版本发布于2002年,是早期嵌入式开发环境中不可或缺的指令集模拟解决方案。这个软件模拟器能在x86、SPARC等非ARM硬件平台上完整模拟ARM指令执行流程,为开发者提供接近真实硬件的调试体验。
不同于物理开发板,ARMulator通过纯软件方式实现:
特别在芯片设计验证阶段,工程师可通过修改配置文件(.dsc/.ami)自定义处理器特性,实现硬件设计的前期验证。
v1.3版本支持三大类平台,各平台具体要求如下:
硬件基准:
操作系统版本:
markdown复制- Windows NT 4.0 + SP5
- Windows 98 SE
- Windows Me
- Windows 2000 + SP1
- Windows XP Professional
注意:Windows 95/98初版、Windows XP Home版不在官方支持列表中
硬件要求:
Solaris版本:
发行版限定:
语言环境要求:
bash复制# 安装前必须设置
export LANG=en_US
采用FLEXlm浮动授权体系,关键注意事项:
ARMLMD_LICENSE_FILE环境变量步骤1 - 介质准备
<CD_ROOT>\setup.exe步骤2 - 版本冲突处理
当检测到旧版ARMulator时:
步骤3 - JVM初始化
步骤4 - 文档组件选择
环境变量清理
batch复制:: 移除ADS 1.2残留配置
set ARMCONF=
set ARMDLL=
静默安装参数
batch复制setup.exe /s /v"/qn INSTALLDIR=\"C:\ARM\RVISS\""
%ARMISS13%环境变量armulator -h测试命令行readme.html中的已知问题区域设置清理
bash复制# 必须步骤!
unset LC_ALL
unset LC_CTYPE
for var in $(env | grep ^LC_ | cut -d= -f1); do unset $var; done
CD-ROM挂载示例
bash复制# 需root权限
mount -F hsfs -o ro /dev/dsk/c0t2d0s2 /mnt/cdrom
依赖库检查
bash复制ldd /mnt/cdrom/setuplinux.bin | grep "not found"
安装脚本调试模式
bash复制# 显示详细日志
sh -x ./setuplinux.bin > install.log 2>&1
问题1:安装过程卡死
/tmp空间,kill残留java进程问题2:许可证失效
bash复制# 临时测试license
export ARMLMD_LICENSE_FILE=27000@license_server
| 组件 | 兼容版本 | 冲突组件 |
|---|---|---|
| RV Debugger | v1.3+ | ADS 1.2 Debugger |
| FLEXlm | v9.2+ | 旧版ARM License |
| DynaText Viewer | Solaris/Win NT | 非官方平台 |
当提交问题时需包含:
bash复制# Solaris系统信息
prtconf -v
showrev -p
bash复制nice -n -10 armulator
在嵌入式项目实践中,我们通常这样使用ARMulator:
交叉调试流程
外设仿真示例
xml复制<!-- 修改AMI文件添加UART -->
<device>
<name>UART0</name>
<base>0x101F1000</base>
<size>0x1000</size>
<type>uart</type>
</device>
经过多个项目的验证,v1.3版本在ARM7TDMI内核模拟时误差率<0.5%,但在ARM9系列的多周期指令模拟中存在约3%的时序偏差,建议关键时序验证仍需硬件测试。