專利名稱:一種用于數(shù)字信號處理器的調試系統(tǒng)及其調試方法
技術領域:
本發(fā)明涉及一種數(shù)字信號處理器的調試系統(tǒng),特別是涉及采用一種以指令插入式的調試方法用于數(shù)字信號處理器的調試系統(tǒng)及其調試方法。
背景技術:
數(shù)字信號處理器(DSP)是專業(yè)化程度很高的MCU(微控制器),其結構適合于以盡量快的速度運行數(shù)目較少的專用指令和專項操作。高速執(zhí)行能力是數(shù)字環(huán)境下對實時模擬信號進行處理所必需的,而DSP正適合于這些運算。
在數(shù)字信號處理器以及微處理器的設計中,內核的調試邏輯的設計是重要及必需的。調試系統(tǒng)就是嵌入在處理器電路內部的調試操作相關邏輯,在處理器正常工作時不產(chǎn)生作用而只用于處理器的調試操作功能。調試系統(tǒng)的主要功能和作用就是實現(xiàn)系統(tǒng)開發(fā)人員對其在數(shù)字信號處理器上運行的工作程序進行在線調試操作,而一般調試邏輯需要完成的調試操作包括兩個大類,一是對處理器內部信息的調試操作,包括處理器內部寄存器,內部和外部存儲器以及處理器本身信息的讀取和修改,二是程序流的基本控制操作,包括程序流的運行,暫停,停止等控制操作。
傳統(tǒng)的處理器調試方式一般采用的是直接使用正常的工作邏輯,不使用特殊的調試邏輯,然后直接通過處理器的外設接口來控制調試操作,通過外設接口和處理器的針床來監(jiān)測調試狀態(tài)和結果。如圖1示便是此種方式的連接關系圖。這種方式不僅功能簡單而且效率低下,基本已不采用。
現(xiàn)較多采用的方式是直接存取操作的方式,如圖2示,這種方法的特點是在處理器內部增加了較為復雜的調試邏輯,將調試邏輯單元和處理器內部的各個資源單元包括處理器內核、寄存器、存儲器等邏輯單元進行獨立連接。在調試時通過獨立的專用的讀寫控制總線進行調試操作。這樣的調試方式基本可以實現(xiàn)大部分的調試操作,但缺點是使用了較多的額外總線連接資源和控制邏輯資源,同時,同步進行的調試操作也會影響和干擾處理器內核流水線的正常時序的操作,對系統(tǒng)內部的數(shù)據(jù)總線和數(shù)據(jù)結構也有很強的侵入性,易引入不必要的錯誤。
以上描述的兩種方法在實際應用中都具有一定的缺點和局限性,帶來了性能上的下降以及硬件資源上的損耗,同時也影響到了數(shù)字信號處理器系統(tǒng)的設計和應用。
發(fā)明內容
本發(fā)明的首個目的是提供一種用于數(shù)字信號處理器的調試系統(tǒng)。該系統(tǒng)更具體的說是一種使用指令插入式的、低系統(tǒng)資源占用的、低系統(tǒng)侵入的、功能強大的調試系統(tǒng)。
本發(fā)明的另一個目的是提供根據(jù)上述調試系統(tǒng)所能實現(xiàn)的調試方法。
根據(jù)以上發(fā)明目的,其技術方案如下一種用于數(shù)字信號處理器的調試系統(tǒng),其特征在于,所述該處理器調試系統(tǒng)是一個處于處理器內部的相對獨立的調試邏輯單元;該調試邏輯單元內部包括了具備接收來自處理器外部仿真器所發(fā)送的調試指令,并對該指令進行解析的調試接口邏輯單元,同時還包括了分別與上述邏輯單元相連接的用來完成調試操作的調試控制邏輯單元和指令插入邏輯單元;所述調試系統(tǒng)對外與處理器的外部調試接口和處理器內的程序流控制單元連接。
此外,所述與調試系統(tǒng)連接的外部調試接口,其設置配備有完整的仿真系統(tǒng),該仿真系統(tǒng)包括具有匹配調試功能的使用外部調試接口的仿真器和控制仿真器的外部仿真主機。
當然,根據(jù)上述調試系統(tǒng)所能實現(xiàn)的調試方法,其具體過程為當外部仿真主機利用仿真器發(fā)出調試指令,接著數(shù)字信號處理器內部調試系統(tǒng)通過外部調試接口接收到調試指令,然后對調試指令進行解析,判斷調試指令類型及相應調試操作,其中可處理的調試操作類型包括設置硬件斷點、清除硬件斷點、單步運行、停止運行、運行、軟件斷點設置、軟件斷點清除、寄存器讀、寄存器寫、存儲器讀、存儲器寫及調試復位操作;解析操作完成后,根據(jù)相應的調試操作,來操作和控制處理器的程序流控制邏輯,完成相應的調試操作,其中借助一個具有公共寄存器訪問地址的一個調試寄存器進行數(shù)據(jù)存取,對于具有數(shù)據(jù)交互的調試指令如寄存器讀寫操作、存儲器讀寫操作等通過使用指令插入的方式以及利用調試寄存器的作用完成實現(xiàn);而對于其它類型的調試指令直接通過控制處理器的程序流來完成。
本發(fā)明所提出的調試系統(tǒng)由于只與處理器的外部調試接口和處理器內的程序流控制單元連接,并不與處理器內部的寄存器文件組,存儲器管理單元(MMU)以及內部存儲器有總線連接和資源交互,所以該調試系統(tǒng)不會侵占任何處理器內部的系統(tǒng)資源,即對系統(tǒng)資源的消耗和占用也十分有限,這樣不會帶來額外的系統(tǒng)總線復雜度的上升。同時其采用指令插入式的方式簡化了調試系統(tǒng)的結構,還降低了整個系統(tǒng)的開發(fā)難度。更需指出的是本發(fā)明調試系統(tǒng)所形成的調試方法同樣適用于不同數(shù)字信號處理器和微處理器的調試系統(tǒng),具有廣泛的普遍的應用性。
圖1為傳統(tǒng)的處理器調試方式的結構圖;圖2為現(xiàn)有處理器普遍采用的一種直接存取操作的調試方式結構圖;圖3為本發(fā)明所述的調試系統(tǒng)在數(shù)字信號處理器內部的結構圖;圖4為本發(fā)明所述的調試系統(tǒng)的結構圖;圖5為本發(fā)明所述的調試系統(tǒng)中指令插入邏輯單元工作時內部的狀態(tài)流程圖;圖6為本發(fā)明所述的調試系統(tǒng)在進行調試時程序流控制單元的工作流程圖。
具體實施例方式以下借助附圖對本發(fā)明作進一步的描述。
如圖3所示,根據(jù)本發(fā)明所述調試系統(tǒng)在數(shù)字信號處理器內部的結構可以看出,該調試系統(tǒng)只與處理器的外部調試接口和處理器內的程序流控制單元連接,并不與處理器內部的寄存器文件組,存儲器管理單元(MMU)以及內部存儲器有總線連接和資源交互。
如圖4所示,本發(fā)明所述調試系統(tǒng)的結構主要包含了三個功能模塊(單元)調試接口控制邏輯,指令插入邏輯和調試控制邏輯。
調試接口控制邏輯的主要功能是接收來自外部仿真器所發(fā)送的調試指令,并對調試指令進行解析,判斷調試指令的類型,并做出相應的控制操作。所接收和解析的調試的指令類型包括有寄存器讀取操作,寄存器修改操作,存儲器讀取操作,存儲器修改操作,設置硬件斷點操作,清除硬件斷點操作,單步運行操作,運行操作,停止運行操作和復位操作。
根據(jù)上述系統(tǒng)描述,其調試過程中按照調試指令的類型分別包含兩個處理方式指令插入和程序流控制。其中,寄存器讀取,寄存器修改,存儲器讀取和存儲器修改這四條具有數(shù)據(jù)交互的調試指令通過指令插入的方式完成,其余的調試指令則通過程序流控制的方式完成。
對于指令插入類的調試操作的解析需要細化。對于寄存器讀取的調試指令,需要將所要讀取的寄存器的地址和此調試指令一同傳送到指令插入邏輯單元。對于寄存器修改的調試指令,要將改寫的目標寄存器的地址和要寫入的數(shù)據(jù)一同傳送到指令插入邏輯單元。對于存儲器的調試操作也是類似的,存儲器讀取的調試指令,需要將所要讀取的存儲器的地址空間和此調試指令一同傳送到指令插入邏輯單元。對于存儲器修改的調試指令,要將改寫的存儲器的地址空間和要寫入的數(shù)據(jù)一同傳送到指令插入邏輯單元,同時存儲器讀取和修改的調試指令都是面向實地址。
如圖5所示,根據(jù)所接收到的調試指令的類型來執(zhí)行不同的插入操作。在指令插入邏輯內部設有一個特殊的調試寄存器,此調試寄存器可以直接被調試接口邏輯進行讀寫操作,同時又具有一個公共寄存器的訪問地址,駐停在處理器系統(tǒng)的寄存器訪問的總線上,可被作為公共寄存器由處理器流水線進行操作。
在接收到調試指令為寄存器讀指令時,所做操作是在當前正在執(zhí)行的指令流中,插入一條寄存器搬移的指令,其中源操作數(shù)為調試操作的所要讀取的寄存器,目標操作數(shù)為指令插入邏輯內部的調試寄存器,指令插入完成后便執(zhí)行當前的指令流,所插入的指令執(zhí)行完畢后,即可在調試寄存器內獲得調試操作所要讀取的寄存器的值,在通過調試接口邏輯將其傳送至外部的仿真器設備,即可完成讀取寄存器的調試操作。
在接收到調試指令為寄存器寫指令時,所做操作是在當前正在執(zhí)行的指令流中,插入一條寄存器搬移的指令,其中源操作數(shù)為立即數(shù),其值為寫寄存器調試指令所包括的數(shù)據(jù)值,目標操作數(shù)為調試操作的所要修改的寄存器,指令插入完成后便執(zhí)行當前的指令流,所插入的指令執(zhí)行完畢后,即可完成寫寄存器的調試操作。
在接收到調試指令為存儲器讀指令時,所做操作是在當前正在執(zhí)行的指令流中,插入一條存儲器讀取的指令,其中源操作數(shù)為調試操作的所要讀取的存儲器的地址,目標操作數(shù)為指令插入邏輯內部的調試寄存器,指令插入完成后便執(zhí)行當前的指令流,所插入的指令執(zhí)行完畢后,即可在調試寄存器內獲得調試操作所要讀取的存儲器空間的值,在通過調試接口邏輯將其傳送至外部的仿真器設備,即可完成讀取存儲器的調試操作。
在接收到調試指令為存儲器寫指令時,所做操作是在當前正在執(zhí)行的指令流中,插入一條寫存儲器的指令,其中源操作數(shù)為立即數(shù),其值為寫寄存器調試指令所包括的數(shù)據(jù)值,目標操作數(shù)為調試操作的所要修改的存儲器的空間地址,指令插入完成后便執(zhí)行當前的指令流,所插入的指令執(zhí)行完畢后,即可完成寫存儲器的調試操作。
指令插入的要點在于調試系統(tǒng)往正在正常執(zhí)行的指令流中強行插入一條或數(shù)條特定的指令,用以完成一些特殊的包括寄存器和存儲器在內的數(shù)據(jù)操作,所插入的指令的運行過程并不會影響到所插入指令之前或之后的正常的程序流的運行,也不會影響到程序指針(PC)的計數(shù),不會干擾了正常的程序流的執(zhí)行操作,只是所插入的指令的運行結果會按照對應的調試操作的操作目標來讀取或是修改相關的寄存器或存儲器的值。
本發(fā)明提出的通過指令插入的方式完成調試操作,避免為調試操作增加額外的硬件資源以及數(shù)據(jù)的讀寫總線,而是通過正常的執(zhí)行指令的途徑自然的完成相關的調試操作,雖然在完成調試操作的時間消耗上會有所增加,但用于調試系統(tǒng)的特點,整體調試速度的瓶頸存在于外部仿真器的調試接口以及調試主機的調試軟件和調試硬件的交互上,以及處理器本身運行的速度即為高速的,因而指令插入式的方法對調試操作的整體速度的影響幾乎是不可見的。同時,指令插入式的方法也不會影響到正常的指令流的運行,在合理的操作控制下,不會給正在調試的目標程序流帶來額外的錯誤的影響。
另外,對于其它類型的調試操作,則直接通過程序流控制單元來實現(xiàn),系統(tǒng)的程序流控制單元即可以控制整個處理器流水線的程序流狀態(tài),包括各種停止及運行的操作。在處理器的正常運行模式下,程序流是不受人為控制的,為一直連續(xù)的執(zhí)行正常的程序流。當進入到調試模式,接收到調試相關的操作指示后,便啟動相應的程序流控制操作。
如圖6所示,上述調試方式在設置時內部狀態(tài)最初是處于開始狀態(tài),可以由調試控制觸發(fā)進入到掛起狀態(tài),這里所述的調試控制可以包括有用戶通過觸發(fā)處理器進入調試模式或者是程序斷點(軟件或硬件斷點)的到達等操作方式。程序流控制狀態(tài)進入掛起狀態(tài)后便可接收和完成不同的調試控制操作。
在調試操作中,對程序流產(chǎn)生影響的操作包括有運行,單步運行和停止運行操作。通過執(zhí)行上述的調試操作指令,使內部程序流狀態(tài)在正常狀態(tài),掛起狀態(tài)和單步狀態(tài)間進行切換,調試操作中在正常狀態(tài)向掛起狀態(tài)切換時也包括了由于斷點到達所引起的事件。
等待調試狀態(tài)則是為了配合指令插入類的調試操作進行程序流操作而設定的,包括執(zhí)行了指令插入式的調試操作后,在程序流插入相關指令時,由此狀態(tài)來控制插入的指令的正確執(zhí)行完畢。即對于調試所插入的指令的執(zhí)行也是由程序流控制邏輯來控制實現(xiàn)。
以上介紹是基于本發(fā)明的一個具體實施例,其中的指令插入方式的細則如具體插入指令的編碼可根據(jù)不同的處理器系統(tǒng)采用不同的指令方式,并不限定于具體的處理器的指令。采用同種方式應用于不同的處理器系統(tǒng)當中實現(xiàn)調試功能不超出本發(fā)明的提供以及保護范圍。
權利要求
1.一種用于數(shù)字信號處理器的調試系統(tǒng),其特征在于,所述該處理器調試系統(tǒng)是一個處于處理器內部的相對獨立的調試邏輯單元;該調試邏輯單元內部包括了具備接收來自處理器外部仿真器所發(fā)送的調試指令,并對該指令進行解析的調試接口邏輯單元,同時還包括了分別與上述邏輯單元相連接的用來完成調試操作的調試控制邏輯單元和指令插入邏輯單元;所述調試系統(tǒng)對外與處理器的外部調試接口和處理器內的程序流控制單元連接。
2.根據(jù)權利要求1的用于數(shù)字信號處理器的調試系統(tǒng),其特征在于,所述與調試系統(tǒng)連接的外部調試接口,其設置配備有完整的仿真系統(tǒng),該仿真系統(tǒng)包括具有匹配調試功能的使用外部調試接口的仿真器和控制仿真器的外部仿真主機。
3.根據(jù)上述調試系統(tǒng)所能實現(xiàn)的調試方法,其特征在于,所述方法中當外部仿真主機利用仿真器發(fā)出調試指令,接著數(shù)字信號處理器內部調試系統(tǒng)通過外部調試接口接收到調試指令,然后對調試指令進行解析,判斷調試指令類型及相應調試操作,其中可處理的調試操作類型包括設置硬件斷點、清除硬件斷點、單步運行、停止運行、運行、軟件斷點設置、軟件斷點清除、寄存器讀、寄存器寫、存儲器讀、存儲器寫及調試復位操作;解析操作完成后,根據(jù)相應的調試操作,來操作和控制處理器的程序流控制邏輯,完成相應的調試操作,其中借助一個具有公共寄存器訪問地址的一個調試寄存器進行數(shù)據(jù)存取,對于具有數(shù)據(jù)交互的調試指令如寄存器讀寫操作、存儲器讀寫操作等通過使用指令插入的方式以及利用調試寄存器的作用完成實現(xiàn);而對于其它類型的調試指令直接通過控制處理器的程序流來完成。
全文摘要
本發(fā)明公開了一種用于數(shù)字信號處理器的調試系統(tǒng)及其調試方法。該調試系統(tǒng)由于只與處理器的外部調試接口和處理器內的程序流控制單元連接,并不與處理器內部的寄存器文件組,存儲器管理單元(MMU)以及內部存儲器有總線連接和資源交互,所以該調試系統(tǒng)不會侵占任何處理器內部的系統(tǒng)資源,即對系統(tǒng)資源的消耗和占用也十分有限,這樣不會帶來額外的系統(tǒng)總線復雜度的上升。同時其采用指令插入式的方式簡化了調試系統(tǒng)的結構,還降低了整個系統(tǒng)的開發(fā)難度。更需指出的是本發(fā)明調試系統(tǒng)所形成的調試方法同樣適用于不同數(shù)字信號處理器和微處理器的調試系統(tǒng),具有廣泛的普遍的應用性。
文檔編號G06F11/36GK101042671SQ20071003986
公開日2007年9月26日 申請日期2007年4月24日 優(yōu)先權日2007年4月24日
發(fā)明者劉春暉, 李興仁, 金榮偉, 林錦麟, 張達文, 楊一茜 申請人:上海華龍信息技術開發(fā)中心