原文:
http://www./JieMiJiShu/879.html一、設(shè)置KEIL C51 的DEBUG 調(diào)試參數(shù)環(huán)境:
1、使用KEIL C51打開你的Project用戶程序更改調(diào)試仿真的選項(xiàng):
2、使用KEIL C51打開你的Project用戶程序更改調(diào)試仿真的選項(xiàng)選擇為MON-51的硬件仿真:
3、設(shè)置仿真的通訊參數(shù)點(diǎn)擊SETTING按鈕去掉CACHE選項(xiàng):
4、一路確定回去按下DEBUG按鈕開始進(jìn)行仿真調(diào)試:
二、 進(jìn)行DEBUG 仿真調(diào)試:
1、仿真調(diào)試按下DEBUG—START/STOP DEBUG SESSION按鈕:
2、進(jìn)入仿真調(diào)試的畫面:
3、實(shí)驗(yàn)進(jìn)行單步連續(xù)執(zhí)行到斷點(diǎn)等功能的調(diào)試:

三、 由SOFTICE 轉(zhuǎn)回到BOOTLOADER 的步驟:
1、在OUTPUT窗口的命令行中寫入INCLUDE 具體芯片的轉(zhuǎn)換文件名的命令回車。
2、這些芯片的轉(zhuǎn)換文件隨SST每 個芯片的SOFTICE工具包一起提供可免費(fèi)到SST的網(wǎng)站上下載,例如:下載的SOFTICE_58RD2.zip 工具包中就包含了一個Convert_to_BSLx5xRD2.txt 文件這個文件就是SST89X58RD2的內(nèi)部監(jiān)控程序由SOFTICE 轉(zhuǎn)換BOOTLOADER 的文件執(zhí)行完這個INCLUDE Convert_to_BSLx5xRD2.txt 命令后出現(xiàn)以下的畫面表示轉(zhuǎn)換為BSL監(jiān)控程序成功:
小竅門:調(diào)試SST單片機(jī)特有的IAP In Application Programming 功能讀/寫SST特有的特殊功能寄存器SFR。
要顯示SST特有的特殊功能寄存器SFR ,只需要在WatchWindow窗口輸入特殊功能寄存器的名稱,Watch Window窗口在VIEW 菜單的點(diǎn)擊Watch & Call Stack Window來激活,激活后就顯示出SST特殊功能寄存器的當(dāng)前值。
SST特殊功能寄存器SFR可以在View菜單下Output Window中進(jìn)行修改。
注:用戶程序中要正確地定義SST的特殊功能寄存器。
監(jiān)視IAP程序
為了看到在BLOCK0的IAP程序?qū)LOCK0的FLASH 存儲器的作用,點(diǎn)擊View 菜單的MemoryWindow, 打開Memory Window窗口,輸入IAP的目標(biāo)地址,結(jié)果馬上在Memory Window顯示。
注:確保Cache Options 沒有打開做實(shí)時顯示(請看目標(biāo)板設(shè)定的步驟2)。
還有部分的使用方式,可訪問SST的網(wǎng)站。
四、 SOFTICE 用戶代碼的限制
1、KEIL MON51 DLL不能支持以下的KEIL debugger 特性:Memory Map/Performance analyzer/Call stack analyzer/Code coverage 并且不支持Trace功能因?yàn)樗枰褂么罅康拇鎯ζ鳌?br style="word-wrap: break-word;"> 2、對于SST89C5x VIS SFCF.7 要保持為1。
3、不支持SST特有的看門狗和軟件復(fù)位功能。
4、用戶代碼的限制:SST89C58 從0000h-6FFFh SST89C54 從0000h-2FFFh SST89E/V564RD從0000h-FBFFh SST89E/V516RD2 從0000h-FBFFh SST89E/V54從0000h-3CFFH SST89E/V58從0000h-7CFFH。
5、如果一個標(biāo)記LABLE 跳轉(zhuǎn)的目標(biāo)在一個單字節(jié)指令后面那斷點(diǎn)不能設(shè)在該單字節(jié)指令上。
6、在GO 命令中,TIMER2 只能做定時器/記數(shù)器GO ,命令執(zhí)行后,TR2 T2CON.2 啟動,TIME2 只能設(shè)為1 并在到達(dá)斷點(diǎn)前被清除。
7、當(dāng)選擇“Stop Program Execution with Serial Interrupt ”后,SOFTICE 會修改在0023h中斷向量的3 個字節(jié),用戶程序要確保沒有使用這些地址,PC 和MCU 連續(xù)的握手的信號會使在GO 指令時程序運(yùn)行變慢。而在GO 命令中,TIMER2 也不能當(dāng)成一個定時器/記數(shù)器。
8、由于SST單片機(jī)自 帶的SOFTICE仿真功能是基于單片機(jī)內(nèi)部的FLASH存儲器實(shí)現(xiàn)的,而FLASH存儲器的擦寫次數(shù)是有一定限制的,SST的SUPER FLASH存儲器的擦寫次數(shù)可達(dá)到10萬次,因此當(dāng)FLASH的擦寫壽命到時,就不能進(jìn)行SOFTICE的仿真調(diào)試了,這時可更換一片新的SST單片機(jī)芯 片即可。