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

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