SST单片机的SoftICE仿真器功能使用说明
SoftICE的英文是Software In Circuit Emulator
翻译成中文是在线的软件仿真器,它是SST公司为方便SST用户使用SST单片机包括SST89C5x,SST89x564RD/554RC/516RD2/5XRD2
调试程序所开发的开发工具,这个SST的仿真器功能可以代替大部分的专用仿真器的功能使单片机工程师在开发单,片机时省却了价格昂贵的仿真器和编程器使得51单片机的开发更加容易和普及并且SST
的单片机价格便宜出厂时就包含了在线下载和在线仿真的功能。
本文是给使用SoftICE的用户一个详细使用说明
本文的范围限于SoftICE的特点需要的目标硬件用户代码限制
1.3 最新的软件/文件下载
最新的SST软件和文件请访问SST网页http://www.sst.com
最新的KEIL软件和文件请访问KEIL网页http://www.keil.com
2 SoftICE 的特点
SST的MCU SoftICE通过PC的一个COM口与KEIL uVision2 Debugger
通讯它可以实时地调试目标程序因此提供使用SST单片机的工程师简单有效和容易使用在板上调试程序尽管小而紧凑SoftICE却提供高级仿真器的大部分功能与KEIL
uVision2 Debugger 一起使用。
SoftICE提供以下特性
▼ 源代码调试支持汇编语言和C51高级语言
▼ 单步执行STEP和STEP OVER
▼ 断点调试做多到10个固定和1个临时断点
▼ 全速运行
▼ 显示修改变量
▼ 读/写数据存储器
▼ 读/写代码存储器
▼ 读/写SFR特殊功能寄存器
▼ 读/写P0-P3端口
▼ 下载INTEL HEX文件
▼ 对8051程序存储区的反汇编
▼ 在线汇编
▼ SST MCU产品特有的IAP功能In Application Programming
3 SoftICE 用到的MCU 硬件资源,SST的SoftICE用到的MCU硬件资源如下:
(1) 一个UART串口RXD TXD 用定时器2做为波特率发生器
(2) 8个字节的堆栈空间
(3) SoftICE监控程序分别占用下面MCU的5Kbyte程序空间:
对SST89C58 BLOCK1的1Kbyte 从F000h 到F3FFh
BLOCK0的4Kbyte 从7000h 到7FFFh
对SST89C54 BLOCK1的1Kbyte 从F000h 到F3FFh
BLOCK0的4Kbyte 从3000h 到3FFFh
对SST89x554RC BLOCK1的4KByte 从0000h 到0FFFh
BLOCK0的1Kbyte 从7C00h到7FFFh
对SST89x564RD BLOCK1的4Kbyte 从0000h 到0FFFh
BLOCK0的1Kbyte 从FC00h 到FFFFh
对SST89E/V54RDX BLOCK1的1Kbyte 从E000h 到E3FFh
BLOCK0的4Kbyte 从3C00h 到3FFFh
对SST89E/V58RDX BLOCK1的1Kbyte 从E000h 到E3FFh
BLOCK0的4Kbyte 从7C00h 到7FFFh
对SST89E/V516RDX BLOCK1的4Kbyte 从0000h 到0FFFh
BLOCK0的1Kbyte 从FC00h 到FFFFh
其它部分的存储区域可以由用户的应用程序使用,连接电路只需将SST单片机的RXD P3.0 和TXD P3.1 管脚通过一个RS232的电,平转换电路连接到PC的COM串口即可可使用这个RS232的转换电路做一个通用的,8051的下载线下载时只需将下载线连接到用户目标板上单片机的P3.0 P3.1 VCC,GND4个管脚即可进行下载或仿真其中一个RS232转换电路图如下:

4 安装SoftICE
4.1 通过SST 串口下载软件BootLoader 下载SOFTICE 监控代码
由于SST的MCU在出厂时已经将BOOT LOADER的下载监控程序写入到芯片中,因此
无需编程器就可通过SST BOOT-STRAP LOADER软件工具将用户程序下载到SST的MCU中从而运行用户程序,SST BOOT-STRAP
LOADER软件工具还可将原来的MCU内部的下载监控程序转换为
SoftICE的监控程序从而实现SOFTICE的仿真功能,执行SSTEasyIAP11F.exe软件运行SST Boot-Strap Loader
在内部模式下检测到对应器,件的型号后SoftICE固件通过按SoftICE菜单下Download SoftICE 选项下载便将SoftICE,固件下载到MCU
在BLOCK1的SST Boot-Strap Loader 会被SoftICE固件代替详细操作步,骤如下:
A 选择连接的串口

B 选择芯片型号和内部存储器模式:

C 选择串口波特率MCU的晶振频率:

D 按确定后再重新复位MCU:

E 如果通讯成功在窗口的右上角可以显示出芯片的型号及BOOT LOADER的版本信息:

F 点击DOWNLOAD SOFTICE的按钮即可将MCU内部的BOOT LOADER的监控程序更换为SOFT
ICE的监控程序。

G 点击确定按钮确认转换为SOFT ICE的监控程序。

H 这是转换后的提示信息说明转换SOFTICE监控程序成功。

I 此时这片SST89E554芯片便具备了SOFTICE的在线仿真的功能
4.2 通过编程器将SoftICE 监控代码烧录到SST 的MCU 芯片中
SoftICE固件可以通过编程器烧录到MCU中
对SST89C54 装载SoftICE54.hex REMAP 1K
对SST89C58 装载SoftICE58.hex REMAP 1K
对SST89x554RC 装载SoftICE554.hex到BLOCK1,不要SC0位(Prog-SC0 )或SC1位
(Prog-SC1),当MCU复位启动后开始运行SoftICE,对SST89x564RD/554RC
装载SoftICE564.hex到BLOCK1,不要编程Prog-SC0位(有些编程器是SC0
),从而使RESET后MCU启动去执行SoftICE,对SST89x5XRD2,装载SoftICE5XRD2.hex到BLOCK1,当MCU复位启动后开始运行SoftICE,对SST89x516RD2,装载SoftICE516.hex到BLOCK1,从而使RESET后MCU启动去执行SoftICE,SoftICE54.hex,SoteICE58.hex,
SoftICE554.hex和SoftICE564.hex都可以在SST的网站上下载,SoftICE固件装载到MCU
,并且安装KEIL软件后把目标板和PC相连,如图1
,当上电和复位SoftICE,准备和KEIL软件通讯调试用户程序注意的是如果你用的KEIL软件是演示版那程序代码不能超过2K。
5 如何使用SoftICE
5.1 设置KEIL C51 的DEBUG 调试参数环境
使用KEIL C51打开你的Project用户程序,更改调试仿真的选项:

选择为MON-51的硬件仿真:

设置仿真的通讯参数点击SETTING按钮去掉CACHE选项:

然后一路确定回去按下DEBUG按钮开始进行仿真调试:
5.2 进行DEBUG 仿真调试
仿真调试,按下DEBUG—START/STOPDEBUG SESSION按钮:

进入仿真调试的画面

实验进行单步连续执行到断点等功能的调试:

5.3 由SOFTICE 转回到BOOTLOADER 的步骤
在OUTPUT窗口的命令行中写入"INCLUDE" 具体芯片的转换文件名的命令回车。

这些芯片的转换文件随SST每个芯片的SOFTICE工具包一起提供,可免费到SST的网站上下载,
小窍门调试SST单片机特有的IAP In Application Programming 功能
1,读/写SST特有的特殊功能寄存器SFR,要显示SST特有的特殊功能寄存器SFR, 只需要在Watch Window窗口输入特殊功能寄存器的名称,Watch
Window窗口在VIEW 菜单的点击Watch & Call Stack Window来激活,激活后就显示出SST特殊功能寄存器的当前值。
2,SST特殊功能寄存器SFR可以在View菜单下Output Window中进行修改。
注:用户程序中要正确地定义SST的特殊功能寄存器。
3,监视IAP程序
为了看到在BLOCK0的IAP程序对BLOCK0的FLASH 存储器的作用,点击View 菜单的Memory
Window,打开Memory Window,窗口输入IAP的目标地址,结果马上在Memory Window显示。注:请确保Cache Options
没有打开做实时显示(请看目标板设定的步骤2)
还有部分的使用方式,请访问SST的网站。
6 SoftICE 用户代码的限制