專(zhuān)利名稱(chēng):具有斷點(diǎn)功能的處理器芯片仿真器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路芯片仿真器領(lǐng)域,特別是涉及一種具有斷點(diǎn)功能的處理器芯 片仿真器。
背景技術(shù):
處理器芯片(即產(chǎn)品芯片)內(nèi)有用戶(hù)開(kāi)發(fā)的用戶(hù)程序,在用戶(hù)程序的編寫(xiě)和調(diào)試 中,所使用的工具一般是處理器芯片仿真器。處理器芯片仿真器內(nèi)使用替代處理器芯片 的仿真芯片,配合仿真器其中的仿真控制模塊、用戶(hù)程序存儲(chǔ)器等部件以及PC (personal computer,個(gè)人計(jì)算機(jī))端的調(diào)試軟件,實(shí)現(xiàn)對(duì)用戶(hù)程序的仿真調(diào)試。斷點(diǎn)是仿真器提供的 基本的也是非常重要的一種調(diào)試手段,現(xiàn)有處理器芯片仿真器中,斷點(diǎn)的功能是當(dāng)用戶(hù)程 序執(zhí)行到用戶(hù)設(shè)置了斷點(diǎn)標(biāo)記處的程序地址處時(shí),仿真芯片就停止工作,程序指針停在有 斷點(diǎn)標(biāo)記處的程序地址上,用戶(hù)可以根據(jù)用戶(hù)程序開(kāi)始執(zhí)行后有沒(méi)有在設(shè)置了斷點(diǎn)的程序 地址處停下,來(lái)判斷用戶(hù)程序是否執(zhí)行到設(shè)置了斷點(diǎn)的程序語(yǔ)句,這是一種常用且十分重 要的調(diào)試手段。但是,隨著芯片功能越來(lái)越強(qiáng)大,用戶(hù)程序存儲(chǔ)器容量的不斷增大,用戶(hù)程序的大 小和復(fù)雜度也在不斷增加,在功能上也有越來(lái)越多的功能塊(幾個(gè)到幾十個(gè))。作為一種最 常用的調(diào)試手段,用戶(hù)在調(diào)試用戶(hù)程序時(shí)在程序中設(shè)置的斷點(diǎn)總個(gè)數(shù)也越來(lái)越多(幾十到 上百個(gè)),用戶(hù)調(diào)試用戶(hù)程序中不同功能模塊時(shí),往往需要在各個(gè)模塊的對(duì)應(yīng)程序段上設(shè)置 多個(gè)斷點(diǎn)。但是由于現(xiàn)有的處理器芯片仿真器只提供了單一的一種斷點(diǎn),所以無(wú)法由用戶(hù) 根據(jù)程序模塊有針對(duì)性地分組設(shè)置和分組使能這些斷點(diǎn)。在實(shí)際使用中,現(xiàn)有的處理器芯 片仿真器使用斷點(diǎn)調(diào)試用戶(hù)程序的某個(gè)功能塊時(shí),其他暫時(shí)不需要或不想調(diào)試的有些功能 塊會(huì)先被執(zhí)行到,那些功能塊上如果有用戶(hù)設(shè)置的斷點(diǎn),程序就會(huì)在那些功能塊的斷點(diǎn)上 先停下來(lái);而不是運(yùn)行到待調(diào)試用戶(hù)程序功能塊的斷點(diǎn)上,極大的干擾了待調(diào)試功能塊的 調(diào)試工作?,F(xiàn)在的解決方法是,用戶(hù)必須手動(dòng)先清除掉待調(diào)試用戶(hù)程序功能塊之外,其他所 有可能會(huì)被執(zhí)行到的用戶(hù)程序功能塊上的所有斷點(diǎn),再設(shè)置和使用斷點(diǎn)來(lái)調(diào)試待調(diào)試用戶(hù) 程序功能塊。在實(shí)際調(diào)試過(guò)程中,用戶(hù)程序的各個(gè)功能塊往往是交叉調(diào)試的。假設(shè)用戶(hù)程 序有A,B,C···等多個(gè)功能塊,調(diào)試完了用戶(hù)程序的A功能塊,必須先清除掉A功能塊上的所 有斷點(diǎn),再在B功能塊上設(shè)置需要的斷點(diǎn);如果發(fā)現(xiàn)A功能塊可能還有錯(cuò)誤,并可能影響到 了 B功能塊的功能,想暫時(shí)放下B功能塊返回來(lái)再調(diào)試一下A功能塊,此時(shí),由于A功能塊 上的斷點(diǎn)都早已被清除掉了,就必須先清除B功能塊上的所有斷點(diǎn),再重新到A功能塊重新 設(shè)置一遍之前清除掉的斷點(diǎn),調(diào)試效率十分的低下。事實(shí)上,在用戶(hù)程序?qū)嶋H調(diào)試過(guò)程中, 由于用戶(hù)程序的各個(gè)功能塊往往具有一定的相關(guān)性,這樣的交叉調(diào)試過(guò)程是經(jīng)常發(fā)生的, 給調(diào)試工作帶了極大的不便。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是提供一種具有斷點(diǎn)功能的處理器芯片仿真器,可以根據(jù)用戶(hù)程序的程序模塊劃分有針對(duì)性地設(shè)置多組斷點(diǎn),方便用戶(hù)使用斷點(diǎn)調(diào)試用戶(hù)程序, 提高程序的調(diào)試效率。為解決上述技術(shù)問(wèn)題,本發(fā)明的具有斷點(diǎn)功能的處理器芯片仿真器,包括連接在 數(shù)據(jù)/地址總線(xiàn)上的仿真芯片、仿真控制模塊和用戶(hù)程序存儲(chǔ)器;所述仿真芯片通過(guò)控制 通道與仿真控制模塊連接;所述仿真控制模塊通過(guò)命令通道與PC機(jī)內(nèi)的調(diào)試軟件通信;其 中所述調(diào)試軟件中設(shè)置有多個(gè)斷點(diǎn),將所述斷點(diǎn)進(jìn)行分組;以組為單位,每組斷點(diǎn)都有使 能和禁止兩種狀態(tài),各組斷點(diǎn)處于何種狀態(tài)由用戶(hù)在所述調(diào)試軟件中設(shè)置;調(diào)試用戶(hù)程序 時(shí),只有處于使能狀態(tài)的各組斷點(diǎn)才發(fā)揮斷點(diǎn)的作用,處于禁止?fàn)顟B(tài)的各組斷點(diǎn)不起作用。采用本發(fā)明的具有斷點(diǎn)功能的處理器芯片仿真器,用戶(hù)可以根據(jù)其用戶(hù)程序的程 序模塊劃分有針對(duì)性地設(shè)置多組斷點(diǎn),并能設(shè)置各組斷點(diǎn)處于使能或者禁止?fàn)顟B(tài)。調(diào)試用 戶(hù)程序時(shí),只有處于使能狀態(tài)的各組斷點(diǎn)才發(fā)揮斷點(diǎn)的作用,處于禁止?fàn)顟B(tài)的各組斷點(diǎn)不 起作用。調(diào)試各個(gè)不同程序模塊時(shí),用戶(hù)只需要設(shè)置使能待調(diào)試程序模塊對(duì)應(yīng)的那些組的 斷點(diǎn),禁止其他組的斷點(diǎn)即可。如需調(diào)試另一個(gè)程序模塊,只需要更改各個(gè)斷點(diǎn)組的使能和 禁止設(shè)置就可以了,無(wú)需反復(fù)清除和重新設(shè)置斷點(diǎn)。充分地發(fā)揮了斷點(diǎn)的強(qiáng)大調(diào)試功能,極 大地方便了用戶(hù)使用斷點(diǎn)調(diào)試用戶(hù)程序,有利于提高程序的調(diào)試效率。
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明附圖是本發(fā)明的具有斷點(diǎn)功能的處理器芯片仿真器結(jié)構(gòu)示意圖。
具體實(shí)施例方式如圖1所示,本發(fā)明的具有斷點(diǎn)功能的處理器芯片仿真器1,包括仿真芯片2,用 戶(hù)程序存儲(chǔ)器3,仿真控制模塊4,以及PC機(jī)端的調(diào)試軟件5。所述仿真芯片2通過(guò)標(biāo)準(zhǔn)的 數(shù)據(jù)/地址總線(xiàn)6與用戶(hù)程序存儲(chǔ)器3連接,所述標(biāo)準(zhǔn)的數(shù)據(jù)/地址總線(xiàn)6還與仿真控制 模塊4連接。所述仿真芯片2通過(guò)控制通道7與仿真控制模塊4連接。所述仿真控制模塊 4通過(guò)命令通道與PC機(jī)端的調(diào)試軟件5通信。用戶(hù)程序存儲(chǔ)器3內(nèi)存放用戶(hù)程序。仿真芯片2通過(guò)所述的數(shù)據(jù)/地址總線(xiàn)6從 用戶(hù)程序存儲(chǔ)器3讀取并執(zhí)行用戶(hù)程序。所述仿真控制模塊4通過(guò)控制通道7控制仿真芯 片2開(kāi)始或停止運(yùn)行用戶(hù)程序。仿真芯片2不工作、不運(yùn)行用戶(hù)程序時(shí),所述仿真控制模塊 4通過(guò)命令通道8與PC機(jī)端的調(diào)試軟件5通信,接收并保存用戶(hù)在調(diào)試軟件5中設(shè)置的斷 點(diǎn)在用戶(hù)程序中的地址(一般簡(jiǎn)稱(chēng)斷點(diǎn)地址),接收開(kāi)始運(yùn)行的命令并通過(guò)控制通道7控制 仿真芯片2開(kāi)始運(yùn)行用戶(hù)程序。仿真芯片2運(yùn)行用戶(hù)程序時(shí),所述仿真控制模塊4通過(guò)命 令通道8與PC機(jī)端的調(diào)試軟件5通信,接收停止運(yùn)行的命令并通過(guò)控制通道7控制仿真芯 片2停止運(yùn)行用戶(hù)程序。仿真芯片2運(yùn)行用戶(hù)程序時(shí),所述仿真控制模塊4實(shí)時(shí)通過(guò)所述 的數(shù)據(jù)/地址總線(xiàn)6查詢(xún)當(dāng)前執(zhí)行的用戶(hù)程序地址與其保存的斷點(diǎn)地址是否一致,如果一 致則通過(guò)命令通道8返回“遇到斷點(diǎn)”的響應(yīng)信息和斷點(diǎn)地址給PC機(jī)端的調(diào)試軟件5,如果 不一致則不做任何操作。PC機(jī)端的調(diào)試軟件5中用戶(hù)可以設(shè)置很多個(gè)斷點(diǎn),并對(duì)這些斷點(diǎn)進(jìn)行分組。以組為單位,每組斷點(diǎn)都有使能和禁止兩種狀態(tài),各組斷點(diǎn)處于何種狀態(tài)由用戶(hù)在調(diào)試軟件5 中設(shè)置。用戶(hù)可以在調(diào)試軟件5中,重新設(shè)置各組斷點(diǎn)處于使能或禁止?fàn)顟B(tài)。假設(shè)用戶(hù)把 的所有斷點(diǎn)按其意愿分為5組,斷點(diǎn)組A到斷點(diǎn)組E,并設(shè)置斷點(diǎn)組A,斷點(diǎn)組C處于使能狀 態(tài),其他斷點(diǎn)組,也就是斷點(diǎn)組B,斷點(diǎn)組D,斷點(diǎn)組E處于禁止?fàn)顟B(tài)。仿真芯片2不工作、不運(yùn)行用戶(hù)程序時(shí),調(diào)試軟件5通過(guò)命令通道8把處于使能狀 態(tài)的那些組(斷點(diǎn)組A,斷點(diǎn)組C)內(nèi)的斷點(diǎn)地址信息發(fā)送給仿真控制模塊4,調(diào)試軟件5不 把剩余的處于禁止?fàn)顟B(tài)的那些組(斷點(diǎn)組B,斷點(diǎn)組D,斷點(diǎn)組E)內(nèi)的斷點(diǎn)地址信息發(fā)送給 仿真控制模塊4。用戶(hù)程序運(yùn)行過(guò)程中,如果調(diào)試軟件5通過(guò)命令通道8接收到仿真控制模 塊4返回“遇到斷點(diǎn)”的響應(yīng)信息和斷點(diǎn)地址,調(diào)試軟件5就通過(guò)命令通道8向仿真控制模 塊4發(fā)出停止運(yùn)行的命令,仿真控制模塊4就會(huì)控制仿真芯片2停止執(zhí)行用戶(hù)程序,用戶(hù)程 序停在遇到斷點(diǎn)的地址上。以上通過(guò)具體實(shí)施方式
對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,但這些并非構(gòu)成對(duì)本發(fā)明的 限制。在不脫離本發(fā)明原理的情況下,本領(lǐng)域技術(shù)人員還可做出許多變形和改進(jìn),這些也應(yīng) 視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種具有斷點(diǎn)功能的處理器芯片仿真器,包括,連接在數(shù)據(jù)/地址總線(xiàn)上的仿真芯片、仿真控制模塊和用戶(hù)程序存儲(chǔ)器;所述仿真芯片通過(guò)控制通道與仿真控制模塊連接;所述仿真控制模塊通過(guò)命令通道與PC機(jī)端的調(diào)試軟件通信;其特征在于所述調(diào)試軟件中設(shè)置有多個(gè)斷點(diǎn),將所述斷點(diǎn)進(jìn)行分組;以組為單位,每組斷點(diǎn)都有使能和禁止兩種狀態(tài),各組斷點(diǎn)處于何種狀態(tài)由用戶(hù)在所述調(diào)試軟件中設(shè)置;調(diào)試用戶(hù)程序時(shí),只有處于使能狀態(tài)的各組斷點(diǎn)才發(fā)揮斷點(diǎn)的作用,處于禁止?fàn)顟B(tài)的各組斷點(diǎn)不起作用。
2.如權(quán)利要求1所述的仿真器,其特征在于用戶(hù)能在所述調(diào)試軟件中根據(jù)調(diào)試用戶(hù) 程序的需要重新設(shè)置各組斷點(diǎn)處于使能或禁止?fàn)顟B(tài);仿真芯片不運(yùn)行用戶(hù)程序時(shí),所述調(diào) 試軟件通過(guò)命令通道把處于使能狀態(tài)的那些組內(nèi)的斷點(diǎn)地址信息發(fā)送給仿真控制模塊,并 且不發(fā)送處于禁止?fàn)顟B(tài)的那些組內(nèi)的斷點(diǎn)地址信息給仿真控制模塊。
3.如權(quán)利要求1所述的仿真器,其特征在于所述仿真芯片運(yùn)行用戶(hù)程序時(shí),所述仿真 控制模塊通過(guò)命令通道與所述調(diào)試軟件通信,接收停止運(yùn)行的命令并通過(guò)控制通道控制仿 真芯片停止運(yùn)行用戶(hù)程序;所述仿真芯片運(yùn)行用戶(hù)程序時(shí),所述仿真控制模塊實(shí)時(shí)通過(guò)所述數(shù)據(jù)/地址總線(xiàn)查 詢(xún)當(dāng)前執(zhí)行的用戶(hù)程序地址與其保存的斷點(diǎn)地址是否一致,如果一致則通過(guò)命令通道返回 “遇到斷點(diǎn)”的響應(yīng)信息和斷點(diǎn)地址給所述調(diào)試軟件,如果不一致則不做任何操作。
4.如權(quán)利要求3所述的仿真器,其特征在于用戶(hù)程序運(yùn)行過(guò)程中,如果所述調(diào)試軟件 通過(guò)命令通道接收到仿真控制模塊返回“遇到斷點(diǎn)”的響應(yīng)信息和斷點(diǎn)地址,該調(diào)試軟件則 通過(guò)命令通道向仿真控制模塊發(fā)出停止運(yùn)行的命令,仿真控制模塊則控制仿真芯片停止執(zhí) 行用戶(hù)程序,用戶(hù)程序停在遇到斷點(diǎn)的地址上。
5.如權(quán)利要求1所述的仿真器,其特征在于所述仿真芯片通過(guò)所述數(shù)據(jù)/地址總線(xiàn) 從存儲(chǔ)器讀取并執(zhí)行用戶(hù)程序;所述仿真控制模塊通過(guò)控制通道控制仿真芯片開(kāi)始或停止 運(yùn)行用戶(hù)程序。
全文摘要
本發(fā)明公開(kāi)了一種具有斷點(diǎn)功能的處理器芯片仿真器,包括,連接在數(shù)據(jù)/地址總線(xiàn)上的仿真芯片、仿真控制模塊和用戶(hù)程序存儲(chǔ)器;仿真芯片通過(guò)控制通道與仿真控制模塊連接;仿真控制模塊通過(guò)命令通道與PC機(jī)內(nèi)的調(diào)試軟件通信;所述調(diào)試軟件中設(shè)置有多個(gè)斷點(diǎn),將所述斷點(diǎn)進(jìn)行分組;以組為單位,每組斷點(diǎn)都有使能和禁止兩種狀態(tài),各組斷點(diǎn)處于何種狀態(tài)由用戶(hù)在調(diào)試軟件中設(shè)置;調(diào)試用戶(hù)程序時(shí),只有處于使能狀態(tài)的各組斷點(diǎn)才發(fā)揮斷點(diǎn)的作用,處于禁止?fàn)顟B(tài)的各組斷點(diǎn)不起作用。本發(fā)明可以根據(jù)用戶(hù)程序的程序模塊劃分有針對(duì)性地設(shè)置多組斷點(diǎn)并使其處于使能或禁止?fàn)顟B(tài),無(wú)需反復(fù)清除和重新設(shè)置斷點(diǎn),方便用戶(hù)使用斷點(diǎn)調(diào)試用戶(hù)程序,提高程序的調(diào)試效率。
文檔編號(hào)G06F11/36GK101968759SQ20091005765
公開(kāi)日2011年2月9日 申請(qǐng)日期2009年7月27日 優(yōu)先權(quán)日2009年7月27日
發(fā)明者許國(guó)泰 申請(qǐng)人:上海華虹集成電路有限責(zé)任公司