欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種多斷點的軟件調(diào)試裝置和方法_2

文檔序號:8457215閱讀:來源:國知局
br>[0059]具體的,首先,驅(qū)動器從所述IDE中獲得用戶在軟件程序中設置斷點的命令以及斷點信息;所述斷點信息包括斷點位置地址;然后,根據(jù)所述斷點位置地址將軟件程序中斷點位置地址對應的真實指令替換成指令存儲器中的斷點指令,所述斷點指令為原地跳轉(zhuǎn)指令;
[0060]本步驟還包括,在將所述真實指令替換成斷點指令后,將所述斷點位置和所述斷點處的真實指令存儲到IDE所在的上位機。
[0061]步驟303:當執(zhí)行到所述斷點指令時,微處理器上報中斷,并凍結(jié)流水線;
[0062]具體的,當軟件程序執(zhí)行到所述斷點指令時,微處理器上報中斷給IDE的同時凍結(jié)流水線;由于所述斷點指令本身為原地跳轉(zhuǎn)指令,因此,斷點指令會跳轉(zhuǎn)到微處理器當前的取指地址處,同時會將流水線上延遲槽內(nèi)的指令都刷新成NOP指令。
[0063]步驟304:驅(qū)動器根據(jù)IDE下發(fā)的命令將所述斷點指令換回真實指令,微處理器解凍流水線,對斷點處的真實指令進行取指,驅(qū)動器在斷點指令執(zhí)行的間隙將斷點處的真實指令再次替換成斷點指令;
[0064]具體的,在上報中斷后,驅(qū)動器根據(jù)IDE下發(fā)的單步操作命令或繼續(xù)操作命令,將所述斷點指令換回真實指令,在換回真實指令時,微處理器解凍流水線,執(zhí)行所述斷點指令,同時完成對斷點處的真實指令進行取指,由于所述斷點指令繼續(xù)在原地跳轉(zhuǎn),這樣,可以在任意兩次執(zhí)行斷點指令的間隙將斷點處的真實指令再次替換成斷點指令。
[0065]圖4具體的呈現(xiàn)了微處理器軟件斷點的設置方法流程,圖中所示流程為圖3中步驟301與步驟302的具體操作步驟,包括:
[0066]步驟401 =IDE開啟調(diào)試模式;
[0067]具體的,IDE開啟調(diào)試模式后,用戶可以在軟件程序中設置斷點,所述斷點的位置和數(shù)量由用戶根據(jù)調(diào)試需要來確定。
[0068]步驟402:驅(qū)動器從所述IDE獲得打斷點的命令以及斷點位置地址;
[0069]具體的,用戶通過IDE設置斷點之后,驅(qū)動器從所述IDE中獲取斷點命令以及斷點位置地址,為下一步替換指令做準備。
[0070]步驟403:驅(qū)動器根據(jù)所述斷點位置地址將斷點處的真實指令替換成斷點指令;
[0071]步驟404:驅(qū)動器將所述斷點位置地址和所述真實指令備份;
[0072]具體的,驅(qū)動器將軟件程序中的所有斷點位置地址和所述斷點位置地址處的真實指令都保存至IDE所在上位機進行備份。
[0073]當微處理器執(zhí)行到斷點指令并上報中斷后,IDE繼續(xù)執(zhí)行單步操作時,具體流程如圖5所示;
[0074]首先,在IDE開始執(zhí)行單步操作時讀取中斷寄存器來判斷是否有中斷,當有中斷時,則表示微處理器已經(jīng)產(chǎn)生中斷并凍結(jié)了流水線,此時可以執(zhí)行單步操作,當沒有中斷時,表示微處理器的流水線正常工作,此時不能執(zhí)行單步操作;然后讀取微處理器中當前取指地址,并將所述取指地址和所述驅(qū)動器記錄存儲的斷點位置進行對比,判斷所述取指地址是否與所述斷點位置對應,當所述取指地址與所述斷點位置對應時,則表示微處理器當前執(zhí)行的指令是原地跳轉(zhuǎn)指令;
[0075]然后,所述驅(qū)動器將所述取指地址eX_2pc處的指令替換為原來需執(zhí)行的真實指令,本實施例中取指地址具體為eX_2pc ;接下來所述驅(qū)動器觸發(fā)微處理器執(zhí)行所述原地跳轉(zhuǎn)指令,同時完成對所述取指地址處的真實指令的取指;所述驅(qū)動器再將所述ex_2pc處的真實指令替換回所述原地跳轉(zhuǎn)指令Trap指令;所述驅(qū)動器觸發(fā)微處理器再一次執(zhí)行所述原地跳轉(zhuǎn)指令,最后,所述微處理器執(zhí)行所述真實指令完成整個單步操作;
[0076]如圖所示,當將所述當前的取指地址和所述驅(qū)動器中記錄的斷點位置進行對比,所述取指地址與所述斷點位置不對應時,表示微處理器當前執(zhí)行的指令不是斷點指令,微處理器繼續(xù)執(zhí)行下一條指令,完成操作。
[0077]圖6所示為當微處理器執(zhí)行到斷點指令并上報中斷后,IDE執(zhí)行繼續(xù)操作時的流程圖,具體流程與圖5所示相似;
[0078]首先,在IDE開始執(zhí)行繼續(xù)操作時讀取中斷寄存器來判斷是否有中斷,當有中斷時,則表示微處理器已經(jīng)產(chǎn)生中斷并凍結(jié)了流水線,此時可以執(zhí)行繼續(xù)操作,當沒有中斷時,表示微處理器的流水線正常工作,此時不能執(zhí)行繼續(xù)操作;然后讀取微處理器中當前取指地址,并將所述取指地址和所述驅(qū)動器記錄存儲的斷點位置進行對比,判斷所述取指地址是否與所述斷點位置對應,當所述取指地址與所述斷點位置對應時,則表示微處理器當前執(zhí)行的指令是原地跳轉(zhuǎn)指令;
[0079]然后,所述驅(qū)動器將所述取指地址eX_2pc處的指令替換為原來需執(zhí)行的真實指令,本實施例中取指地址具體為eX_2pc ;接下來所述驅(qū)動器觸發(fā)微處理器執(zhí)行所述原地跳轉(zhuǎn)指令,同時完成對所述取指地址處的真實指令的取指;所述驅(qū)動器再將所述ex_2pc處的真實指令替換回所述原地跳轉(zhuǎn)指令Trap指令;驅(qū)動器觸發(fā)微處理器再一次執(zhí)行所述原地跳轉(zhuǎn)指令,最后,驅(qū)動器觸發(fā)微處理器全速執(zhí)行軟件程序,完成整個繼續(xù)操作。
[0080]本發(fā)明實施例所述多斷點的軟件調(diào)試方法如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本領域內(nèi)的技術人員應明白,本申請的實施例可提供為方法、裝置、或計算機程序產(chǎn)品。因此,本申請可采用硬件實施例、軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)上實施的計算機程序產(chǎn)品的形式,所述存儲介質(zhì)包括但不限于U盤、移動硬盤、只讀存儲器(ROM, Read-Only Memory)、磁盤存儲器、CD-ROM、光學存儲器等;
[0081]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)本發(fā)明方法流程中的一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0082]從上述實施例可以看出,本發(fā)明提供的微處理器軟件多斷點的軟件調(diào)試裝置和方法,通過利用斷點指令和凍結(jié)流水線來實現(xiàn)微處理器軟件調(diào)試過程中的多斷點的靈活設置,比現(xiàn)有斷點調(diào)試技術更加節(jié)省單板上的存儲空間,調(diào)試方法也更加簡便。
[0083]以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1.一種多斷點的軟件調(diào)試裝置,其特征在于,該軟件調(diào)試裝置包括:驅(qū)動器、微處理器、指令存儲器和微碼集成開發(fā)環(huán)境IDE ;其中, 所述驅(qū)動器,用于獲取軟件程序中的斷點信息,將所述斷點信息發(fā)送給指令存儲器,并根據(jù)指令存儲器中的斷點信息將斷點處的真實指令替換成斷點指令,在上報中斷給IDE后,根據(jù)IDE下發(fā)的命令將所述斷點指令換回真實指令,觸發(fā)微處理器解凍流水線,并在斷點指令執(zhí)行的間隙將斷點處的真實指令再次替換成斷點指令; 所述微處理器,用于當執(zhí)行到斷點指令時,通過驅(qū)動器上報中斷給IDE,凍結(jié)流水線,并根據(jù)驅(qū)動器的觸發(fā)解凍流水線,對斷點處的真實指令進行取指; 所述指令存儲器,用于存儲斷點指令和斷點信息; 所述IDE,用于為用戶提供下發(fā)命令的交互界面。
2.根據(jù)權(quán)利要求1所述的軟件調(diào)試裝置,其特征在于,所述斷點信息包括斷點位置地址;所述斷點指令為原地跳轉(zhuǎn)指令;所述斷點指令執(zhí)行的間隙為斷點指令在原地執(zhí)行跳轉(zhuǎn)的任意兩次的間隙。
3.根據(jù)權(quán)利要求2所述的軟件調(diào)試裝置,其特征在于,所述驅(qū)動器,還用于將來自所述IDE的命令解析成具體的寄存器或存儲器讀寫信號通過總線發(fā)送給所述微處理器和/或指令存儲器。
4.根據(jù)權(quán)利要求3所述的的軟件調(diào)試裝置,其特征在于,所述驅(qū)動器,還用于將斷點位置和斷點處的真實指令存儲到IDE所在的上位機。
5.根據(jù)權(quán)利要求4所述的軟件調(diào)試裝置,其特征在于,所述微處理器包括:流水線和調(diào)試模塊;其中, 所述流水線,用于當執(zhí)行到斷點指令時,解析發(fā)現(xiàn)當前指令為斷點指令后向所述調(diào)試模塊發(fā)送通知,并在解凍后對斷點處的真實指令進行取指; 所述調(diào)試模塊,用于當接收到來自所述流水線的通知后,凍結(jié)流水線,上報中斷給驅(qū)動器,并根據(jù)驅(qū)動器的觸發(fā)解凍流水線。
6.根據(jù)權(quán)利要求5所述的軟件調(diào)試裝置,其特征在于,所述調(diào)試模塊,具體用于當接收到來自所述流水線的通知后,產(chǎn)生停止信號來凍結(jié)流水線。
7.一種多斷點的軟件調(diào)試方法,其特征在于,該軟件調(diào)試方法包括: 微碼集成開發(fā)環(huán)境IDE在軟件程序中設置斷點; 驅(qū)動器獲取軟件程序中的斷點信息,根據(jù)所述斷點信息將斷點處的真實指令替換成斷點指令; 當執(zhí)行到所述斷點指令時,微處理器上報中斷給IDE,并凍結(jié)流水線; 驅(qū)動器根據(jù)IDE下發(fā)的命令將所述斷點指令換回真實指令; 微處理器解凍流水線,對斷點處的真實指令進行取指; 驅(qū)動器在斷點指令執(zhí)行的間隙將斷點處的真實指令再次替換成斷點指令。
8.根據(jù)權(quán)利要求7所述的軟件調(diào)試方法,其特征在于,所述斷點信息包括斷點位置地址。
9.根據(jù)權(quán)利要求8所述的軟件調(diào)試方法,其特征在于,該軟件調(diào)試方法還包括:驅(qū)動器將斷點位置和斷點處的真實指令存儲到IDE所在的上位機。
10.根據(jù)權(quán)利要求7所述的軟件調(diào)試方法,其特征在于,所述驅(qū)動器根據(jù)IDE下發(fā)的命令將所述斷點指令換回真實指令,微處理器解凍流水線,對斷點處的真實指令進行取指,驅(qū)動器在斷點指令執(zhí)行的間隙將斷點處的真實指令再次替換成斷點指令為:驅(qū)動器根據(jù)IDE下發(fā)的單步操作命令或繼續(xù)操作命令,將所述斷點指令換回真實指令,在換回真實指令時,微處理器解凍流水線,對斷點處的真實指令進行取指,在對所述真實指令取指完成后,在任意兩次執(zhí)行斷點指令的間隙將斷點處的真實指令再次替換成斷點指令。
【專利摘要】本發(fā)明公開了一種多斷點的軟件調(diào)試裝置和方法,該軟件調(diào)試裝置包括:驅(qū)動器、微處理器、指令存儲器和微碼集成開發(fā)環(huán)境(IDE);上述軟件調(diào)試裝置通過在軟件程序中設置斷點,獲取斷點信息,將斷點處的指令替換成斷點指令,在執(zhí)行到斷點指令時,上報中斷、凍結(jié)流水線,根據(jù)IDE下發(fā)的命令將所述斷點指令換回真實指令,解凍流水線,對斷點處的真實指令進行取指,在斷點指令執(zhí)行的間隙將斷點處的真實指令再次替換成斷點指令的方法來實現(xiàn)多斷點的軟件調(diào)試。
【IPC分類】G06F11-36, G06F9-30
【公開號】CN104778116
【申請?zhí)枴緾N201410010606
【發(fā)明人】郝宇, 安康, 王志忠
【申請人】深圳市中興微電子技術有限公司
【公開日】2015年7月15日
【申請日】2014年1月9日
【公告號】WO2015103815A1
當前第2頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
静安区| 新巴尔虎右旗| 格尔木市| 得荣县| 崇礼县| 小金县| 富阳市| 吴桥县| 花莲市| 洞口县| 视频| 邹平县| 灵寿县| 榆林市| 重庆市| 方正县| 东阿县| 巴林右旗| 陵川县| 内黄县| 霍城县| 高台县| 綦江县| 灵寿县| 余江县| 麦盖提县| 崇阳县| 大英县| 伊吾县| 靖远县| 满洲里市| 盐山县| 平顶山市| 华安县| 平南县| 镇平县| 曲麻莱县| 赣榆县| 竹溪县| 衡阳县| 荣成市|