可設(shè)置程序指針值的仿真器的制造方法
【專利摘要】本發(fā)明公開了一種可設(shè)置程序指針值的仿真器,包括:仿真芯片,調(diào)試模塊,存儲器;存儲器內(nèi)具有用戶程序和數(shù)據(jù)存儲器區(qū)和監(jiān)控程序存儲器區(qū);調(diào)試模塊控制仿真芯片處于監(jiān)控模式或者用戶模式,在監(jiān)控模式下控制仿真芯片執(zhí)行監(jiān)控程序存儲器區(qū)內(nèi)相應(yīng)地址處的程序;其中,在監(jiān)控程序存儲器區(qū)內(nèi)存儲有修改PC值監(jiān)控程序,當(dāng)執(zhí)行該修改PC值監(jiān)控程序的返回語句后,當(dāng)前PC值自動變成堆棧內(nèi)存放的地址值。本發(fā)明在仿真芯片的處理器核不支持寫PC值指令的情況下,仿真器也可以提供修改PC值的調(diào)試功能;在提高調(diào)試用戶程序效率的同時,降低仿真調(diào)試功能實現(xiàn)對處理器核功能的依賴,降低仿真芯片開發(fā)復(fù)雜性和成本,提高仿真器設(shè)計的通用性。
【專利說明】可設(shè)置程序指針值的仿真器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種處理器芯片仿真器,具體而言是涉及一種可設(shè)置程序指針值的仿真器。
【背景技術(shù)】
[0002]處理器芯片內(nèi)有用戶開發(fā)的用戶程序,在用戶程序的編寫和調(diào)試中,所使用的工具一般是處理器芯片仿真器。仿真器內(nèi)使用包含產(chǎn)品處理器芯片各項功能的仿真芯片,用于模擬產(chǎn)品處理器芯片的工作行為,在功能和性能上均十分接近產(chǎn)品處理器芯片;仿真芯片與仿真器主機配合實現(xiàn)用戶程序的仿真運行和各項調(diào)試功能。因此,仿真芯片一般都是在產(chǎn)品芯片基礎(chǔ)上設(shè)計的,在沿用產(chǎn)品芯片幾乎所有功能模塊、處理器核的同時,去除一些與用戶程序調(diào)試無關(guān)的模塊,例如安檢模塊等,去除存儲器(存儲器在仿真器上外掛,包括程序和數(shù)據(jù)存儲器)引出讀寫存儲器的標(biāo)準(zhǔn)數(shù)據(jù)/地址總線,增加一個仿真芯片與仿真器通信和導(dǎo)出仿真芯片內(nèi)數(shù)據(jù)用的仿真通信通道,以及一些實現(xiàn)仿真調(diào)試功能的模塊(仿真模塊)。在停止執(zhí)行用戶程序時,仿真器處于監(jiān)控模式,仿真芯片上的仿真模塊、仿真通信通道才工作,配合仿真器實現(xiàn)各種仿真調(diào)試功能。在執(zhí)行用戶程序時,仿真器處于運行模式,仿真芯片上的仿真模塊、仿真通信通道都對用戶程序不可見,用戶程序與在產(chǎn)品芯片上運行時功能基本一致。為避免與產(chǎn)品芯片發(fā)生功能不一致,仿真芯片的處理器核設(shè)計完全沿用產(chǎn)品芯片處理器核設(shè)計,不會去做修改,因此不能支持產(chǎn)品芯片處理器核不支持的指令。
[0003]程序指針(Program Counter,簡稱PC)值是用戶程序執(zhí)行以及在仿真器上仿真調(diào)試時非常重要的一個參數(shù),它表示下一條將要執(zhí)行的用戶程序語句的位置,即PC值指示的用戶程序地址就是下一條將被執(zhí)行的用戶程序語句。修改PC值是仿真器一項非常實用的調(diào)試功能,使用戶可以通過設(shè)置當(dāng)前PC值,控制仿真芯片下一條執(zhí)行哪個程序地址處的程序語句。在現(xiàn)有仿真器和仿真芯片中,這一功能需要處理器核支持,處理器核需要支持寫PC值的指令,即處理器核可以通過執(zhí)行程序語句修改PC值,仿真器可以在監(jiān)控模式下,由仿真芯片執(zhí)行寫PC值的指令把PC值修改為用戶設(shè)定值。產(chǎn)品芯片處理器核不支持寫PC值的指令的話,那么如果在設(shè)計仿真芯片時不修改處理器核設(shè)計,則仿真器就不能支持修改PC值的調(diào)試功能了 ;如果在設(shè)計仿真芯片時修改處理器核設(shè)計,增加寫PC值的指令,由于修改了處理器核設(shè)計為保證修改后的正確性,以及仿真芯片在功能上與產(chǎn)品芯片的一致性,則需要重新對仿真芯片的處理器核部分做驗證和測試。這一工作十分耗時耗力,而且如果產(chǎn)品處理器核部分是硬核(即芯片廠商無法修改),那么也就無法通過修改處理器核設(shè)計增加寫PC值的指令,來使對應(yīng)仿真器和仿真芯片支持修改PC值的調(diào)試功能了。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是提供一種可設(shè)置程序指針值的仿真器,即使仿真芯片的處理器核不支持寫PC值指令,也可以修改PC值。
[0005]為解決上述技術(shù)問題,本發(fā)明的可設(shè)置程序指針值的仿真器,包括:仿真芯片,調(diào)試模塊,存儲器;
[0006]所述仿真芯片通過調(diào)試通道與調(diào)試模塊相連接;所述仿真芯片內(nèi)具有與產(chǎn)品芯片一致的處理器核;該處理器核與存儲器和調(diào)試模塊之間通過數(shù)據(jù)/地址總線相連接;
[0007]所述存儲器內(nèi)具有用戶程序和數(shù)據(jù)存儲器區(qū)和監(jiān)控程序存儲器區(qū);
[0008]所述調(diào)試模塊控制仿真芯片處于監(jiān)控模式或者用戶模式,在監(jiān)控模式下控制仿真芯片執(zhí)行所述監(jiān)控程序存儲器區(qū)內(nèi)相應(yīng)地址處的程序;
[0009]其中:在所述監(jiān)控程序存儲器區(qū)內(nèi)存儲有修改程序指針PC值監(jiān)控程序,當(dāng)執(zhí)行該修改程序指針PC值監(jiān)控程序的返回語句后,當(dāng)前程序指針PC值自動變成堆棧內(nèi)存放的地址值。
[0010]所述調(diào)試模塊通過所述標(biāo)準(zhǔn)數(shù)據(jù)/地址總線修改存儲器內(nèi)監(jiān)控程序存儲器區(qū)的監(jiān)控程序語句。
[0011]所述仿真芯片的處理器核在用戶模式下,通過所述標(biāo)準(zhǔn)數(shù)據(jù)/地址總線從存儲器的用戶程序和數(shù)據(jù)存儲器區(qū)讀取并執(zhí)行用戶程序及讀寫用戶數(shù)據(jù);在用戶模式下該處理器核不能訪問存儲器的監(jiān)控程序存儲器區(qū)。
[0012]所述仿真芯片的處理器核在監(jiān)控模式下,通過所述標(biāo)準(zhǔn)數(shù)據(jù)/地址總線從存儲器的監(jiān)控程序存儲器區(qū)讀取并執(zhí)行監(jiān)控程序;在監(jiān)控模式下該處理器核不能訪問存儲器的用戶程序和數(shù)據(jù)存儲器區(qū)。
[0013]還包括位于用戶電腦上的集成開發(fā)環(huán)境模塊,所述調(diào)試模塊通過通信通道與集成開發(fā)環(huán)境模塊相連接,該調(diào)試模塊通過所述通信通道從集成開發(fā)環(huán)境模塊接收指令和參數(shù)。
[0014]采用本發(fā)明的仿真器,即使仿真芯片的處理器核不支持寫PC值指令,所實現(xiàn)的仿真器中仿真芯片也不需要修改處理器核,增加對寫PC值指令的支持,仿真器也可以提供修改PC值的調(diào)試功能。在提供了實用調(diào)試功能提高調(diào)試用戶程序效率的同時,有助于降低仿真調(diào)試功能實現(xiàn)對處理器核功能(寫PC值)的依賴,避免修改處理器核設(shè)計,降低仿真芯片開發(fā)復(fù)雜性和成本,提高仿真器設(shè)計的通用性。
【專利附圖】
【附圖說明】
[0015]下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步詳細的說明:
[0016]附圖是所述可設(shè)置程序指針值的仿真器一實施例結(jié)構(gòu)示意圖。
【具體實施方式】
[0017]參見附圖所示,所述可設(shè)置程序指針值的仿真器I在本實施例中,包括仿真芯片3,調(diào)試模塊5,存儲器6,以及用戶電腦上的集成開發(fā)環(huán)境2。仿真芯片3通過調(diào)試通道9與調(diào)試模塊5連接。仿真芯片3內(nèi)有與產(chǎn)品芯片一致的處理器核4。存儲器6內(nèi)有兩個地址區(qū)域,分別是用戶程序和數(shù)據(jù)存儲器區(qū)7,監(jiān)控程序存儲器區(qū)8。調(diào)試模塊5通過所述調(diào)試通道9控制仿真芯片3處于監(jiān)控模式或者用戶模式。在監(jiān)控模式下調(diào)試模塊5控制仿真芯片3執(zhí)行存儲器6內(nèi)監(jiān)控程序存儲器區(qū)8某一地址處的程序。
[0018]監(jiān)控程序存儲器區(qū)8內(nèi)有用于實現(xiàn)修改PC值的一段修改PC值監(jiān)控程序,這段修改PC值監(jiān)控程序包括壓棧(I3USH地址A),返回(RETURN)兩條程序語句。返回語句具有這樣的特性,在執(zhí)行后,當(dāng)前程序PC值就自動變成堆棧內(nèi)存放的地址值。
[0019]仿真器I上有一個標(biāo)準(zhǔn)數(shù)據(jù)/地址總線10連接仿真芯片3的處理器核4、存儲器6和調(diào)試模塊5。調(diào)試模塊5通過所述標(biāo)準(zhǔn)數(shù)據(jù)/地址總線10修改存儲器6內(nèi)監(jiān)控程序存儲器區(qū)8的監(jiān)控程序語句。
[0020]仿真芯片3的處理器核4在用戶模式下,通過所述標(biāo)準(zhǔn)數(shù)據(jù)/地址總線10從存儲器6的用戶程序和數(shù)據(jù)存儲器區(qū)7讀取、執(zhí)行用戶程序及讀寫用戶數(shù)據(jù)。在用戶模式下,仿真芯片3不能訪問存儲器6的監(jiān)控程序存儲器區(qū)8。
[0021]仿真芯片3的處理器核4在監(jiān)控模式下,通過所述標(biāo)準(zhǔn)數(shù)據(jù)/地址總線10從存儲器6的監(jiān)控程序存儲器區(qū)8讀取、執(zhí)行監(jiān)控程序。在監(jiān)控模式下仿真芯片3不能訪問存儲器6的用戶程序和數(shù)據(jù)存儲器區(qū)7。
[0022]調(diào)試模塊5通過通信通道11與集成開發(fā)環(huán)境模塊2連接,調(diào)試模塊5通過所述通信通道11從集成開發(fā)環(huán)境模塊2接收指令和參數(shù)。
[0023]這樣,用戶在集成開發(fā)環(huán)境模塊2上設(shè)置PC值時,集成開發(fā)環(huán)境模塊2把寫PC值指令和目標(biāo)PC值(用戶程序中的地址B)通過通信通道11傳給調(diào)試模塊5。調(diào)試模塊5通過標(biāo)準(zhǔn)數(shù)據(jù)/地址總線10修改監(jiān)控程序存儲器區(qū)8內(nèi)修改PC值監(jiān)控程序中壓棧語句,把壓棧語句的參數(shù)一地址值A(chǔ)改成地址B。調(diào)試模塊5通過調(diào)試通道9控制仿真芯片3進入監(jiān)控模式,仿真芯片3的處理器核4通過標(biāo)準(zhǔn)數(shù)據(jù)/地址總線10執(zhí)行監(jiān)控程序存儲器區(qū)8內(nèi)修改PC值監(jiān)控程序,然后,調(diào)試模塊5再控制仿真芯片3切換到用戶模式。由于仿真芯片3的處理器核4在監(jiān)控模式下執(zhí)行修改PC值監(jiān)控程序,執(zhí)行壓棧語句把處理器核4堆棧內(nèi)的地址值改成了目標(biāo)地址B,執(zhí)行返回語句后,當(dāng)前PC值就變成了地址B。這樣,就完成了用戶程序PC值的修改。
[0024]所述可設(shè)置程序指針值的仿真器1,即使仿真芯片的處理器核不支持寫PC值指令,也可以提供修改PC值的調(diào)試功能,能設(shè)置程序指針值。
[0025]以上通過【具體實施方式】和實施例對本發(fā)明進行了詳細的說明,但這些并非構(gòu)成對本發(fā)明的限制。在不脫離本發(fā)明原理的情況下,本領(lǐng)域的技術(shù)人員還可做出許多變形和改進,這些也應(yīng)視為本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種可設(shè)置程序指針值的仿真器,包括:仿真芯片,調(diào)試模塊,存儲器;所述仿真芯片通過調(diào)試通道與調(diào)試模塊相連接;所述仿真芯片內(nèi)具有與產(chǎn)品芯片一致的處理器核;該處理器核與存儲器和調(diào)試模塊之間通過數(shù)據(jù)/地址總線相連接; 所述存儲器內(nèi)具有用戶程序和數(shù)據(jù)存儲器區(qū)和監(jiān)控程序存儲器區(qū); 所述調(diào)試模塊控制仿真芯片處于監(jiān)控模式或者用戶模式,在監(jiān)控模式下控制仿真芯片執(zhí)行所述監(jiān)控程序存儲器區(qū)內(nèi)相應(yīng)地址處的程序; 其特征在于:在所述監(jiān)控程序存儲器區(qū)內(nèi)存儲有修改程序指針PC值監(jiān)控程序,當(dāng)執(zhí)行該修改程序指針PC值監(jiān)控程序的返回語句后,當(dāng)前程序指針PC值自動變成堆棧內(nèi)存放的地址值。
2.如權(quán)利要求1所述的仿真器,其特征在于:所述調(diào)試模塊通過所述數(shù)據(jù)/地址總線修改存儲器內(nèi)監(jiān)控程序存儲器區(qū)的監(jiān)控程序語句。
3.如權(quán)利要求1所述的仿真器,其特征在于:所述仿真芯片的處理器核在用戶模式下,通過所述數(shù)據(jù)/地址總線從存儲器的用戶程序和數(shù)據(jù)存儲器區(qū)讀取并執(zhí)行用戶程序及讀寫用戶數(shù)據(jù);在用戶模式下該處理器核不能訪問存儲器的監(jiān)控程序存儲器區(qū)。
4.如權(quán)利要求1所述的仿真器,其特征在于:所述仿真芯片的處理器核在監(jiān)控模式下,通過所述數(shù)據(jù)/地址總線從存儲器的監(jiān)控程序存儲器區(qū)讀取并執(zhí)行監(jiān)控程序;在監(jiān)控模式下該處理器核不能訪問存儲器的用戶程序和數(shù)據(jù)存儲器區(qū)。
5.如權(quán)利要求1所述的仿真器,其特征在于:所述修改程序指針PC值監(jiān)控程序包括壓棧,返回兩條程序語句。
6.如權(quán)利要求1-5任一所述的仿真器,其特征在于:還包括位于用戶電腦上的集成開發(fā)環(huán)境模塊,所述調(diào)試模塊通過通信通道與集成開發(fā)環(huán)境模塊相連接,該調(diào)試模塊通過所述通信通道從集成開發(fā)環(huán)境模塊接收指令和和參數(shù)。
【文檔編號】G06F9/455GK103677953SQ201210362728
【公開日】2014年3月26日 申請日期:2012年9月25日 優(yōu)先權(quán)日:2012年9月25日
【發(fā)明者】許國泰 申請人:上海華虹集成電路有限責(zé)任公司