專利名稱:一種數(shù)字信號處理器軟件調試信息輸出方法
技術領域:
本發(fā)明涉及數(shù)字信號處理器(DSP)技術,特別是一種DSP軟件調試信息輸出方法。
背景技術:
由于具備強大的處理能力,DSP一般應用于高速信號處理的場所,尤其在通訊領域獲得了非常廣泛的應用。由于對DSP系統(tǒng)的實時性和處理性能有較高的要求,目前在DSP系統(tǒng)的設計中主要側重于考慮DSP的數(shù)據(jù)吞吐能力和運算速率,而對于DSP系統(tǒng)的人機交互和調試手段卻通常關注的不夠。
在DSP系統(tǒng)的設計中,調試DSP軟件時需要輸出調試信息,當DSP軟件異常時為了準確地定位問題也需要輸出調試信息?,F(xiàn)有技術中常見的DSP軟件調試信息輸出方法為首先通過仿真工具加載DSP軟件,然后通過所使用的仿真工具把調試信息輸出到調試主機,最后在集成調試環(huán)境下輸出。由于DSP上應用程序越來越龐大,特別是在移動通訊系統(tǒng)中廣泛采用的分布式處理方式往往會在一塊目標板上采用多片DSP,而DSP仿真工具的標準基本只能實現(xiàn)串行加載,所以應用仿真工具輸出調試信息會降低DSP軟件的調試效率,而且由于目前各個廠家提供的DSP仿真工具對于一些復雜的實時任務的調試并不完善,應用這種方法通常還是需要直接輸出調試信息進行問題定位,從而造成對DSP軟件調試的不便。同時,因為這種通過DSP仿真工具輸出調試信息的方法是采用仿真工具來加載DSP軟件,而DSP軟件的實際應用環(huán)境基本上是由CPU負責進行后臺加載,所以通過DSP仿真工具加載DSP軟件時必須修改相應的環(huán)境配置,從而造成無法測試正常的DSP加載流程。
現(xiàn)有技術中還有通過DSP與主機之間的主機接口(HPI)直接將調試信息輸出到CPU,CPU再將調試信息通過CPU的調試通道直接輸出到調試主機的調試信息輸出方法,其中HPI接口包含HPI郵箱以及CPU和DSP的通訊協(xié)議。
在一些復雜的應用場所中,可以將DSP互聯(lián)起來組成DSP互聯(lián)陣列。圖1為現(xiàn)有技術中利用HPI接口的調試模式圖。如圖1所示,DSP應用板上有CPU和DSP互聯(lián)陣列,其中DSP互聯(lián)陣列通過HPI接口和CPU連接。輸出調試信息到調試主機時需要先將調試信息格式化,現(xiàn)有技術一般通過調用Printf等打印函數(shù)將調試信息字符串格式化,然后以消息包的方式發(fā)往HPI接口的HPI郵箱,CPU讀取HPI郵箱以獲得調試信息消息包再調用打印函數(shù)通過CPU的調試通道而輸出。
圖2為現(xiàn)有技術中利用HPI接口輸出調試信息輸出流程圖。如圖2所示,包括以下步驟步驟201CPU加載DSP程序,開始調試流程;步驟202DSP程序格式化調試信息字符串,并且將格式化后的調試信息字符串組包成調試信息包,然后將調試信息包發(fā)給HPI郵箱;步驟203CPU讀取HPI郵箱獲得調試信息包并通過CPU的調試通道打印輸出。
現(xiàn)有技術中這種利用HPI接口直接輸出調試信息到CPU,CPU再將調試信息通過CPU的調試通道直接輸出的方式由于不是利用仿真工具進行加載DSP程序,所以可以避免通過仿真工具輸出調試信息所造成的問題,但是由于HPI接口是一個所有的DSP所公用擁有并且?guī)捠芟薜墓蚕碣Y源,而調試信息字符串的長度不固定并且可能很長,并且現(xiàn)有技術中每條調試信息都組成一個調試信息包輸出會造成包頭的開銷很大,所以通過HPI接口輸出大量由調試信息字符串所組成的調試信息包會占用大量的HPI帶寬。
同時,現(xiàn)有技術中輸出調試信息前需要在DSP上格式化調試信息字符串,而在DSP上格式化調試信息字符串的時間同調試信息字符串的長度有關,動輒需要上百周期,增加了在DSP上處理調試信息的時間,從而加大了DSP的負載。特別的,如果DSP由于某種原因而處于異常情況時,因為一個異常通常會導致產生一連串的異常,而通常每個異常都會有調試信息輸出,進而對DSP正常業(yè)務的處理造成極大沖擊。
現(xiàn)有技術中常見的方式還有通過將調試信息通過外部存儲器接口輸出到串口芯片,由串口芯片再輸出到調試終端。由于只是簡單采用串口芯片將調試信息上報給調試主機,因此調試信息只能是DSP主動輸出,而當DSP程序發(fā)生異常時,DSP往往已經無法正常的輸出,因此無法獲取DSP程序異常時的現(xiàn)場信息,而很多情況下這些現(xiàn)場信息對于定位DSP程序的問題是必不可少的。同時,由于是通過串口芯片將調試信息上報給調試主機,調試信息輸出速率會受到串口芯片速率的影響。
發(fā)明內容
有鑒于此,本發(fā)明的主要目的是提出一種DSP軟件調試信息輸出方法,以節(jié)省HPI傳輸所耗的帶寬。
為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的一種DSP軟件調試信息輸出方法,包括以下步驟A、DSP程序中創(chuàng)建不少于1種類型的調試信息對象和不少于1個調試信息緩沖器以及調試信息輸出到CPU的觸發(fā)條件,其中每種調試信息對象對應于至少一個調試信息緩沖器并且每種調試信息對象對應于1種調試信息;B、DSP編譯器編譯所述DSP程序生成加載文件,所述加載文件至少包括調試信息字符串段,CPU根據(jù)段名檢索所述的加載文件并保存調試信息字符串段的內容到CPU,獲得調試信息字符串段映射到DSP的物理地址、調試信息字符串段的內容保存在CPU的地址;C、DSP程序將相同類型的調試信息對象所對應的調試信息輸出到與該調試信息對象類型相對應的調試信息緩沖器;D、判斷調試信息輸出到CPU的觸發(fā)條件是否滿足,如果滿足則通過主機接口(HPI)輸出調試信息到CPU,CPU計算與調試信息相對應的調試信息字符串保存在CPU的物理地址并輸出調試信息字符串,如果不滿足則返回步驟D。
所述的調試信息對象為錯誤信息對象、DSP程序調試信息對象、或函數(shù)運行軌跡信息對象。
步驟D所述的計算與調試信息相對應的調試信息字符串保存在CPU的物理地址為計算調試信息字符串段中該調試信息字符串映射到DSP中的物理起始地址減去調試信息字符串段映射到DSP中的物理起始地址再加上調試信息字符串段的內容保存在CPU的起始地址。
步驟B進一步解析檢索文件獲得DSP上所有調試信息緩沖器起始地址、DSP上所有調試信息緩沖器的長度。
進一步在步驟A設置CPU與DSP程序的定時握手任務,當所述的定時握手任務失敗時,CPU主動從調試信息緩沖器取得調試信息。
步驟D所述的觸發(fā)條件為定時查詢觸發(fā)條件、主動觸發(fā)條件、或最大延遲輸出觸發(fā)條件。
通過以上的技術方案可以看出,本發(fā)明中DSP輸出到CPU的調試信息都包含與調試信息相對應的調試信息字符串映射到DSP的物理地址,而調試信息的長度與調試信息字符串長度無關,調試信息本身并不包括調試信息字符串,通過與調試信息相對應的調試信息字符串映射到DSP的物理地址和解析調試信息所需要的參數(shù),CPU就可以獲得與調試信息所對應的調試信息字符串,因此本發(fā)明中所傳輸?shù)恼{試信息的長度遠遠小于調試信息字符串長度,同時,本發(fā)明在調試信息輸出緩沖器中多條調試信息緩存后滿足一定觸發(fā)條件時同時組包輸出,而不是輸出每條調試信息就要輸出一個消息包,因此本發(fā)明還大大降低了包頭的開銷,所以應用本發(fā)明極大地減少了HPI接口傳送所耗的帶寬。
本發(fā)明中DSP程序只是將包含調試信息字符串的地址的調試信息輸出到調試信息輸出緩存器,而不用在DSP上格式化調試信息字符串,并且本發(fā)明調試信息的格式固定,調試信息本身并不包括調試信息字符串,從而使得DSP處理調試信息的時間大大縮小,所以本發(fā)明大大減少了DSP的負載。
同時,本發(fā)明在DSP程序運行過程中將一些重要的運行信息循環(huán)保存在軌跡調試信息輸出緩沖器中,當DSP程序運行過程中出現(xiàn)異常時,如果這個異常DSP程序可以檢測到,DSP程序可以利用主動觸發(fā)方式將調試信息組包輸出到CPU,而如果這個錯誤DSP程序無法檢測,CPU可以主動獲得調試信息輸出緩沖器的內容并依次實時解析和輸出,從而應用本發(fā)明實現(xiàn)了對DSP故障的現(xiàn)場分析,進而為迅速定位DSP故障提供了有力的幫助。
本發(fā)明通過CPU而不是仿真工具加載DSP程序,DSP程序中包含有足夠多的調試信息,實時通過CPU輸出調試信息,從而極大地方便了多DSP環(huán)境下的調試,提高了DSP程序調試的效率,并且還不需要修改環(huán)境配置。同時,本發(fā)明通過HPI接口而不是串口輸出調試信息,所以調試信息輸出速率不受到串口芯片速率的限制。
圖1為現(xiàn)有技術中利用HPI接口的調試模式圖。
圖2為現(xiàn)有技術中利用HPI接口輸出調試信息流程圖。
圖3為本發(fā)明一實施例的加載文件格式示意圖。
圖4為本發(fā)明一實施例的調試信息格式示意圖。
圖5為本發(fā)明一實施例中利用HPI接口輸出調試信息流程圖。
具體實施例方式
為使本發(fā)明的目的、技術方案和優(yōu)點表達得更加清楚明白,下面結合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。
本發(fā)明的主要思想是首先在DSP程序中創(chuàng)建各種類型的調試信息對象、調試信息輸出緩沖器和輸出調試信息的觸發(fā)條件,其中每個調試信息對象對應獨立的調試信息輸出緩沖器,并且各個調試信息輸出緩沖器的大小可以調節(jié),然后CPU解析DSP加載文件,將調試信息字符串段的內容保存在CPU的存儲空間,并且獲得解析調試信息所需要的參數(shù),DSP程序加載后當DSP程序運行時將調試信息輸出到相對應的調試信息輸出緩沖器,并且當滿足一定的觸發(fā)條件時再通過HPI接口將調試信息輸出緩沖器中的調試信息輸出到CPU,其中調試信息中包含有與調試信息相對應的調試信息字符串的地址,也就是該調試信息字符串映射到DSP的物理地址,最后CPU實時解析獲得的調試信息并通過CPU的調試通道進行輸出。
在通訊系統(tǒng)中廣泛采用了一種系列的DSP,該系列DSP在編譯程序時編譯鏈接DSP程序而生成加載文件,所生成的加載文件的格式為公共對象文件格式(COFF)。當在DSP程序中建立不同類型的調試信息對象后,DSP開發(fā)環(huán)境在編譯程序時將會在加載文件中產生和DSP程序中所建立的調試信息對象相對應的編譯段。
加載DSP程序時,需要按照各個段的物理地址分別進行加載,而調試信息字符串段沒有物理地址,所以在加載DSP程序之前需要對調試信息字符串段進行地址映射。編譯完成以后,由鏈接器完成調試信息字符串段地址映射。
圖3為本發(fā)明一實施例中利用HPI接口輸出調試信息流程圖。如圖3所示,包括以下步驟步驟301DSP程序中創(chuàng)建各種類型的調試信息對象和調試信息輸出緩沖器和調試信息輸出的觸發(fā)條件,其中每個調試信息對象對應于各自獨立的調試信息輸出緩沖器;步驟302DSP編譯器編譯DSP程序生成DSP加載文件,其中DSP加載文件至少包含調試信息對象段和const段;圖4為本發(fā)明一實施例的COFF格式的加載文件格式示意圖。如圖4所示,COFF文件包括文件頭、可選文件頭、段頭、原始數(shù)據(jù)、再定位信息、行編號入口、符號表和字符表。在編譯程序時,編譯器將程序中所有的調試信息字符串都分配到一個指定的const段中,并且編譯產生和DSP程序中所建立的調試信息對象相對應的編譯段。
步驟303CPU加載DSP程序并根據(jù)段名檢索生成的加載文件,獲得調試信息字符串段映射到DSP的物理地址、調試信息字符串段的內容保存在CPU的地址;CPU在加載DSP程序之前首先根據(jù)段名檢索整個DSP加載文件查找到const段和各調試信息對象段,可從const段獲得const段的物理地址和const段原始數(shù)據(jù)地址,其中const段的物理地址為const段映射到DSP上的物理地址,而const段原始數(shù)據(jù)地址為const段在加載文件中的地址。DSP程序加載時,CPU通過const段原始數(shù)據(jù)地址可以獲得const段在加載文件中的地址,從而CPU可獲得const段的信息。CPU存儲獲得的const段信息并且記錄const段信息保存在CPU的起始地址。
步驟304DSP輸出調試信息到對應的調試信息輸出緩沖器;加載文件中保留有全部的調試信息字符串,所以在DSP程序運行過程中輸出調試信息時,一條調試信息可以只保留序號、調試參數(shù)和與調試信息所對應的調試信息字符串的起始地址。其中調試信息中的序號是用來確定當在發(fā)送過程中發(fā)送信息丟失時讓用戶知道,序號的值在每條數(shù)據(jù)生成時加1,調試信息中的調試參數(shù)最多為2個,在沒有調試參數(shù)時,調試信息格式中調試參數(shù)位置的值用0代替。
圖5所示為本發(fā)明一實施例的調試信息格式示意圖。如圖5所示,調試信息包括序號、調試參數(shù)和調試信息字符串指針,根據(jù)調試信息字符串指針可以確定const段中與調試信息所對應的調試信息字符串映射到DSP的物理起始地址。調試信息中的調試參數(shù)為2個,所以每條調試信息的占用空間可為4個字。
步驟305判斷是否滿足調試信息輸出到CPU的觸發(fā)條件,如果是則通過HPI接口輸出調試信息到CPU,否則返回步驟304;調試信息輸出到CPU的觸發(fā)方式可以為定時查詢觸發(fā)方式、主動輸出觸發(fā)方式、或最大延遲觸發(fā)方式。
定時查詢方式為每隔一段時間查詢特定的調試信息輸出緩沖器,如果調試信息輸出緩沖器中的調試消息條數(shù)超過了一定的門限,則將調試信息緩沖器中所有的調試信息組包并通過HPI接口輸出,然后將調試信息指針復位。
主動輸出觸發(fā)方式主要應用于某些特殊需求場所,例如在DSP運行過程中將函數(shù)軌跡等一些重要信息循環(huán)輸出到軌跡信息輸出緩沖器中,一旦滿足一定的條件,則將整個調試信息輸出緩沖器中的信息組包輸出到CPU以方便定位問題。
最大延遲輸出方式是設置一個調試信息輸出最大延遲門限,一旦有調試信息在調試信息輸出緩沖器中的延遲時間超過這個門限,則輸出調試信息到CPU,以保證調試信息輸出的實時性。
步驟306CPU實時解析調試信息并輸出;為了輸出調試信息,CPU需要獲得保存在CPU中的與調試信息對應的調試信息字符串的地址。調試信息字符串在CPU中的起始地址為與調試信息所對應的調試信息字符串映射到DSP中的物理起始地址減去const段映射到DSP中的物理起始地址再加上保存在CPU中的const信息在CPU中的起始地址。獲得了與調試信息對應的調試信息字符串的地址后,CPU就可以對相應的調試信息字符串進行打印輸出。
以上過程中,為了在DSP程序異常時獲取DSP程序的故障定位信息,在步驟303檢索加載文件時,CPU還可從各調試信息對象段獲得DSP上所有調試信息緩沖器起始地址和DSP上所有調試信息緩沖器長度??深A先在CPU和DSP程序中分別建立一個低優(yōu)先級的定時握手任務,如果在DSP程序運行中出現(xiàn)DSP程序可以檢測到的異常,DSP程序將在異常之前的程序運行狀態(tài)和一些重要的參數(shù)實時發(fā)送到調試主機進行觀察,以提高DSP程序運行時定位異常的效率。當出現(xiàn)DSP程序無法檢測到的異常時,此時CPU將不能檢測到DSP程序的握手,CPU可通過所獲得的各調試信息緩沖器的起始地址和長度從DSP上直接讀取對應的調試信息緩沖器的信息并進行解析輸出,從而為快速定位DSP死機故障提供了有力的幫助,極大地方便了對DSP故障現(xiàn)場的分析。
以上過程中,步驟301所述的調試信息對象按照作用不同可以分為錯誤信息對象、或DSP程序調試信息對象、或函數(shù)運行軌跡信息對象,并且調試信息緩沖器的大小可以相應進行調節(jié)。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1.一種數(shù)字信號處理器(DSP)軟件調試信息輸出方法,其特征在于,包括以下步驟A、DSP程序中創(chuàng)建不少于1種類型的調試信息對象和不少于1個調試信息緩沖器以及調試信息輸出到CPU的觸發(fā)條件,其中每種調試信息對象對應于至少一個調試信息緩沖器并且每種調試信息對象對應于1種調試信息;B、DSP編譯器編譯所述DSP程序生成加載文件,所述加載文件至少包括調試信息字符串段,CPU根據(jù)段名檢索所述的加載文件并保存調試信息字符串段的內容到CPU,獲得調試信息字符串段映射到DSP的物理地址、調試信息字符串段的內容保存在CPU的地址;C、DSP程序將相同類型的調試信息對象所對應的調試信息輸出到與該調試信息對象類型相對應的調試信息緩沖器;D、判斷調試信息輸出到CPU的觸發(fā)條件是否滿足,如果滿足則通過主機接口(HPI)輸出調試信息到CPU,CPU計算與調試信息相對應的調試信息字符串保存在CPU的物理地址并輸出調試信息字符串,如果不滿足則返回步驟D。
2.根據(jù)權利要求1所述的DSP軟件調試信息輸出方法,其特征在于,所述的調試信息對象為錯誤信息對象、DSP程序調試信息對象、或函數(shù)運行軌跡信息對象。
3.根據(jù)權利要求1所述的DSP軟件調試信息輸出方法,其特征在于,步驟D所述的計算與調試信息相對應的調試信息字符串保存在CPU的物理地址為計算調試信息字符串段中該調試信息字符串映射到DSP中的物理起始地址減去調試信息字符串段映射到DSP中的物理起始地址再加上調試信息字符串段的內容保存在CPU的起始地址。
4.根據(jù)權利要求1所述的DSP軟件調試信息輸出方法,其特征在于,步驟B進一步解析檢索文件獲得DSP上所有調試信息緩沖器起始地址、DSP上所有調試信息緩沖器的長度。
5.根據(jù)權利要求4所述的DSP軟件調試信息輸出方法,其特征在于,進一步在步驟A設置CPU與DSP程序的定時握手任務,當所述的定時握手任務失敗時,CPU主動從調試信息緩沖器取得調試信息。
6.根據(jù)權利要求1所述的DSP軟件調試信息輸出方法,其特征在于,步驟D所述的觸發(fā)條件為定時查詢觸發(fā)條件、主動觸發(fā)條件、或最大延遲輸出觸發(fā)條件。
全文摘要
本發(fā)明公開了一種數(shù)字信號處理器(DSP)軟件調試信息輸出方法,包括以下步驟DSP程序中創(chuàng)建各種調試信息對象和對應的調試信息輸出緩沖器以及輸出調試信息的觸發(fā)條件;編譯生成加載文件;CPU根據(jù)段名檢索加載文件并保存調試信息字符串段,獲得解析調試信息所需的參數(shù);DSP程序將相同類型的調試信息輸出到對應的調試信息輸出緩沖器;判斷觸發(fā)條件是否滿足,如果滿足就通過CPU與DSP之間的接口(HPI)輸出調試信息緩沖器中的調試信息到CPU,否則返回;CPU解析輸出調試信息。該方法可極大地節(jié)省HPI接口帶寬、減少DSP的負載、方便地實現(xiàn)DSP異常時輸出DSP軟件調試信息。
文檔編號G06F11/36GK1667585SQ200410004678
公開日2005年9月14日 申請日期2004年3月9日 優(yōu)先權日2004年3月9日
發(fā)明者王鵬 申請人:華為技術有限公司