ISD51 (在線調(diào)試器)為8051編程用戶提供了新的監(jiān)控調(diào)試技術(shù)。將 ISD51 進(jìn)行配置后與您的用戶程序連接起來用戶就可以通過8051的一個(gè)串口直接在芯片上調(diào)試程序了。ISD51的軟件和硬件可以工作于最小模式。它可以運(yùn)行于帶有外部或內(nèi)部程序空間的系統(tǒng)并且不要求增加像馮.諾伊曼架構(gòu)的數(shù)據(jù)存儲器等的特殊硬件部件。ISD51 可以工作在像 Philips LPC 系列之類的微型單片機(jī)上并且可以完全訪問其 CODE 和 XDATA 地址空間。
ISD51硬件需求,一個(gè)8051兼容串口, 500-700字節(jié)的程序代碼在相應(yīng)數(shù)量的特殊積存器中運(yùn)行,6字節(jié)堆??臻g,1字節(jié)IDATA RAM,為每個(gè)軟件斷點(diǎn)預(yù)留2字節(jié)IDATA RAM 。
ISD51在你的8051系統(tǒng)里增加了一個(gè)串口中斷函數(shù) (ISD51中斷)。當(dāng)ISD51連接到 uVision2 調(diào)試器時(shí), 8051輸入ISD51的中斷函數(shù)。只要到程序運(yùn)行一被停止, 8051就只運(yùn)行ISD51中斷服務(wù)程序當(dāng)uVision2調(diào)試器發(fā)出一個(gè)“Go”的指令, 8051就脫離ISD51中斷函數(shù)并且運(yùn)行用戶程序。如果沒有設(shè)置任何斷點(diǎn)或者如果所有斷點(diǎn)設(shè)置為硬件斷點(diǎn), 8051 就會全速運(yùn)行用戶程序。如果設(shè)置了軟件斷點(diǎn), 8051在相應(yīng)8051 CPU指令后面輸入ISD51 中斷函數(shù)。ISD51 中斷服務(wù)程序會檢查是否8051程序到了一個(gè)斷點(diǎn)地址,如果是,開始和 uVision2 調(diào)試器通訊。所以, 當(dāng)使用軟件斷點(diǎn)時(shí),8051 的程序運(yùn)行速度會變得相當(dāng)慢(相差100倍左右)。一旦“ISD51 系統(tǒng)在線調(diào)試器”被作為中斷函數(shù)實(shí)現(xiàn),其它和 ISD51 系統(tǒng)的中斷優(yōu)先級一樣,甚至比ISD51優(yōu)先級更高的中斷函數(shù)中就不能再設(shè)置斷點(diǎn)或者單步執(zhí)行了。默認(rèn)狀態(tài)下, ISD51 中斷函數(shù)使用的中斷優(yōu)先等級為0級。uVision2 調(diào)試器發(fā)送一個(gè) 0xA5 的字符到 ISD51 的中斷函數(shù)中,使用戶程序停止并且開始與調(diào)試器通訊, 當(dāng) uVision2 調(diào)試器收到請求信號后,8051 就會開始執(zhí)行程序。
當(dāng)然光是有ISD51還不夠,還要選擇合適的硬件整個(gè)系統(tǒng)才能有效的運(yùn)行起來。ISD51的調(diào)試過程是這樣的,首先將帶有ISD51接口函數(shù)的用戶代碼燒寫到MCU的FLASH中,然后打開Keil C完成一些必要的設(shè)置后,就可以運(yùn)行ISD51進(jìn)行代碼的調(diào)試了。根據(jù)以上分析,要實(shí)現(xiàn)代碼的調(diào)試,就要求反復(fù)擦寫單片機(jī),而象89Sxx、STC系列的單片機(jī)都具有ISP功能,在沒有編程器的情況細(xì)很容易實(shí)現(xiàn)擦寫。 為了調(diào)試方便自己寫了一個(gè)ISD51的模板程序,支持C編程,無需仿真器,只要在主函數(shù)中添加用戶代碼,就可以完成單步、斷點(diǎn)等調(diào)試功能。
本文引用地址:http://m.butianyuan.cn/article/201611/320539.htm
評論