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

一種多CPU架構下的CPU運行狀態(tài)調試方法和系統(tǒng)與流程

文檔序號:12463958閱讀:229來源:國知局
一種多CPU架構下的CPU運行狀態(tài)調試方法和系統(tǒng)與流程

本發(fā)明涉及集成電路技術領域,更為具體地說,涉及一種多CPU架構下的CPU運行狀態(tài)調試方法和系統(tǒng)。



背景技術:

SOC芯片(System-on-a-Chip,系統(tǒng)級芯片)是信息系統(tǒng)核心的芯片集成,能夠將系統(tǒng)關鍵部件集成在一塊芯片上。通常情況下SOC芯片包含有多個CPU(Central Processing Unit,中央處理器),其架構模式為多CPU架構。

隨著信息技術的發(fā)展,SOC芯片的任務越來越復雜、運算速度越來越快且響應時間越來越短,導致SOC芯片的集成度越來越高。SOC芯片集成度的提高會導致芯片的面積越來越大,管腳數目越來越多且成本越來越高。為了解決上述問題,現有的SOC芯片通常會在集成的部分CPU中裁剪掉部分用于調試運行狀態(tài)的調試接口,以縮減管腳數目、減小芯片面積和降低研發(fā)成本。

由于SOC芯片的集成度高且應用等級高,SOC芯片中的CPU一旦出現故障,將會對所應用的系統(tǒng)帶來巨大的損失,因此針對SOC芯片中CPU運行狀態(tài)的調試是必需的。然而SOC芯片中部分CPU中已裁剪掉部分用于調試運行狀態(tài)的調試接口,導致SOC芯片中部分CPU難以被正常調試,而CPU的運行狀態(tài)一旦出現問題,將會嚴重損害SOC芯片的功能,甚至會給所應用的系統(tǒng)帶來巨大損失。



技術實現要素:

本發(fā)明的目的是提供一種多CPU架構下的CPU運行狀態(tài)調試的技術方案,以解決背景技術中所介紹的現有技術中SOC芯片中部分被裁剪掉調試接口的CPU難以被正常調試的問題。

為了解決上述技術問題,本發(fā)明提供如下技術方案:

根據本發(fā)明的第一方面,提供了一種多CPU架構下的CPU運行狀態(tài)調試方法,所述多CPU架構包括第一CPU、第二CPU和共享存儲器,其中,所述第一CPU存在調試接口,所述第二CPU無調試接口;所述CPU運行狀態(tài)調試方法包括:

通過第一CPU的調試接口啟動所述第一CPU,通過所述第一CPU設置所述共享存儲器內的調試結果共享地址;

通過所述調試接口控制第一CPU向所述共享存儲器的第二CPU跳轉指令存放地址中寫入第二CPU跳轉指令,其中,所述第二CPU跳轉指令用于控制所述第二CPU跳轉至所述共享存儲器中的調試指令存放地址;

通過所述調試接口控制第一CPU向所述調試指令存放地址中寫入運行調試指令,其中,所述運行調試指令用于調試所述第二CPU的運行狀態(tài);

控制第二CPU根據所述第二CPU跳轉指令,從所述調試指令存放地址中讀取所述運行調試指令,根據所述運行調試指令調試所述第二CPU的運行狀態(tài),將產生的運行狀態(tài)調試結果寫入所述調試結果共享地址中;

通過所述調試接口控制第一CPU從所述調試結果共享地址中讀取所述運行狀態(tài)調試結果。

優(yōu)選地,所述通過所述調試接口控制第一CPU從所述調試結果共享地址中讀取所述運行狀態(tài)調試結果,包括:

控制第二CPU向共享存儲器內通信標識存放地址中寫入第一通信標識,所述第一通信標識包括調試結果生成確認信息以及調試結果共享地址和存放長度;

通過所述調試接口控制第一CPU從所述通信標識存放地址中讀取所述第一通信標識;

根據所述第一通信標識中的調試結果共享地址和存放長度,通過所述調試接口控制所述第一CPU讀取所述運行狀態(tài)調試結果;

通過所述調試接口控制第一CPU向共享存儲器的通信標識存放地址中寫入第二通信標識,所述第二通信標識用于確認運行狀態(tài)調試結果讀取完畢;

根據所述第二通信標識,控制所述共享存儲器釋放所述調試結果共享地址中的運行狀態(tài)調試結果。

優(yōu)選地,所述CPU運行狀態(tài)調試方法,還包括:

通過所述調試接口向所述第一CPU發(fā)送腳本觸發(fā)指令,其中,所述腳本觸發(fā)指令用于從所述第一CPU中導出包含有所述運行狀態(tài)調試結果的數據文件;

顯示所述包含有運行狀態(tài)調試結果的數據文件。

優(yōu)選地,在通過所述調試接口控制第一CPU向所述調試指令存放地址中寫入運行調試指令之前,所述方法還包括:

控制第二CPU從所述第二CPU跳轉指令存放地址中讀取所述第二CPU跳轉指令;

控制所述第二CPU向所述共享存儲器中寫入跳轉指令讀取確認信號,其中,所述跳轉指令讀取確認信號包括所述第二CPU已讀取所述第二CPU跳轉指令的確認信息;

控制所述第一CPU從所述共享存儲器中讀取所述跳轉指令讀取確認信號。

優(yōu)選地,所述控制第二CPU根據所述第二CPU跳轉指令,從所述調試指令存放地址中讀取所述運行調試指令,包括:

控制所述第一CPU向共享存儲器內的通信標識存放地址中寫入第三通信標識,所述第三通信標識用于通知所述調試指令存放地址中已寫入運行調試指令;

控制所述第二CPU從所述通信標識存放地址中讀取所述第三通信標識后,根據所述第二CPU跳轉指令從所述調試指令存放地址中讀取所述運行調試指令。

根據本發(fā)明的第二方面,還提供了一種多CPU架構下的CPU運行狀態(tài)調試系統(tǒng),所述多CPU架構包括第一CPU、第二CPU和共享存儲器,其中,所述第一CPU存在調試接口,所述第二CPU無調試接口;所述CPU運行狀態(tài)調試系統(tǒng)包括:

第一啟動模塊,用于通過所述第一CPU的調試接口啟動所述第一CPU,通過所述第一CPU設置所述共享存儲器內的調試結果共享地址;

第一寫入模塊,用于通過所述調試接口控制第一CPU向共享存儲器的第二CPU跳轉指令存放地址中寫入第二CPU跳轉指令,其中,所述第二CPU跳轉指令用于控制所述第二CPU跳轉至所述共享存儲器中的調試指令存放地址;

第二寫入模塊,用于通過所述調試接口控制第一CPU向共享存儲器的調試指令存放地址中寫入運行調試指令,其中,所述運行調試指令用于調試所述第二CPU的運行狀態(tài);

第一讀取模塊,用于控制第二CPU根據所述第二CPU跳轉指令,從所述調試指令存放地址中讀取所述運行調試指令;

調試控制模塊,用于控制所述第二CPU根據所述運行調試指令調試所述第二CPU的運行狀態(tài);

第三寫入模塊,用于控制所述第二CPU將產生的運行狀態(tài)調試結果寫入所述共享存儲器的調試結果共享地址中;

第二讀取模塊,用于通過所述調試接口控制第一CPU從所述調試結果共享地址中讀取所述運行狀態(tài)調試結果。

優(yōu)選地,所述第二讀取模塊,包括:

第一寫入子模塊,用于控制第二CPU向共享存儲器內的通信標識存放地址中寫入第一通信標識,所述第一通信標識包括調試結果生成確認信息以及調試結果共享地址和存放長度;

第一讀取子模塊,用于通過所述調試接口控制第一CPU從所述通信標識存放地址中讀取所述第一通信標識;

第二讀取子模塊,用于根據所述第一通信標識中的調試結果共享地址和存放長度,通過所述調試接口控制所述第一CPU讀取所述運行狀態(tài)調試結果;

第二寫入子模塊,用于通過所述調試接口控制第一CPU向共享存儲器的通信標識存放地址中寫入第二通信標識,所述第二通信標識用于確認運行狀態(tài)調試結果讀取完畢;

釋放子模塊,用于根據所述第二通信標識,控制所述共享存儲器釋放所述調試結果共享地址中的運行狀態(tài)調試結果。

優(yōu)選地,所述CPU運行狀態(tài)調試系統(tǒng),還包括:

指令發(fā)送模塊,用于通過所述調試接口向所述第一CPU發(fā)送腳本觸發(fā)指令,其中,所述腳本觸發(fā)指令用于從所述第一CPU中導出包含有所述運行狀態(tài)調試結果的數據文件;

顯示模塊,用于顯示所述包含有運行狀態(tài)調試結果的數據文件。

優(yōu)選地,所述CPU運行狀態(tài)調試系統(tǒng),還包括:

第三讀取模塊,用于控制第二CPU從所述第二CPU跳轉指令存放地址中讀取所述第二CPU跳轉指令;

第四寫入模塊,用于控制所述第二CPU向所述共享存儲器寫入跳轉指令讀取確認信號,其中,所述跳轉指令讀取確認信號包括所述第二CPU已讀取所述第二CPU跳轉指令的確認信息;

第四讀取模塊,用于控制所述第一CPU從所述共享存儲器中讀取所述跳轉指令讀取確認信號。

優(yōu)選地,所述共享存儲器為同步動態(tài)隨機存取存儲器。

優(yōu)選地,所述第一讀取模塊,包括:

第三寫入子模塊,用于控制所述第一CPU向共享存儲器內的通信標識存放地址中寫入第三通信標識,所述第三通信標識用于通知所述調試指令存放地址中已寫入運行調試指令;

第三讀取子模塊,用于控制所述第二CPU從所述通信標識存放地址中讀取所述第三通信標識后,根據所述第二CPU跳轉指令從所述調試指令存放地址中讀取所述運行調試指令。

通過上述工作過程可以得出,本發(fā)明提供的多CPU架構下的CPU運行狀態(tài)調試方案,首先通過啟動存在調試接口的第一CPU,通過第一CPU控制第二CPU啟動,通過該第一CPU的調試接口向共享存儲器的第二CPU跳轉指令存放地址中寫入第二CPU跳轉指令,以通過共享存儲器中的第二CPU跳轉指令控制沒有調試接口的第二CPU跳轉至共享存儲器中的調試指令存放地址,以及向共享存儲器中寫入運行調試指令,控制第二CPU根據上述第二CPU跳轉指令讀取該運行調試指令,以調試第二CPU的運行狀態(tài),從而能夠控制第二CPU向共享存儲器中寫入運行狀態(tài)調試結果,通過第一CPU的調試接口控制第一CPU從共享存儲器中讀取第二CPU的運行狀態(tài)調試結果。本發(fā)明的技術方案能夠通過多CPU架構下存在調試接口的CPU,能夠通過有調試接口的CPU獲取無調試接口的CPU的運行狀態(tài)調試結果,從而能夠對無調試接口的CPU的運行狀態(tài)進行調試,減少該CPU出現的運行狀態(tài)故障。

附圖說明

為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領域普通技術人員而言,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其它的附圖。

圖1是本發(fā)明一示例性實施例示出的一種應用場景示意圖;

圖2是本發(fā)明一示例性實施例示出的一種多CPU架構下的CPU運行狀態(tài)調試方法的流程圖;

圖3是圖2所示實施例示出的一種運行狀態(tài)調試結果的讀取方法的流程圖;

圖4是本發(fā)明一示例性實施例示出的一種多CPU架構下的CPU運行狀態(tài)調試方法的流程圖;

圖5是圖2所示實施例示出的一種第二CPU啟動確認方法的流程圖;

圖6是圖2所示實施例示出的一種運行調試指令讀取方法的流程圖;

圖7是本發(fā)明一示例性實施例示出的一種運行狀態(tài)調試結果的讀取方法的流程圖;

圖8是本發(fā)明一示例性實施例示出的一種多CPU架構下的CPU運行狀態(tài)調試系統(tǒng)的結構圖;

圖9是圖8所示實施例示出的一種第二讀取模塊的結構圖;

圖10是本發(fā)明一示例性實施例示出的一種多CPU架構下的CPU運行狀態(tài)調試系統(tǒng)的結構圖;

圖11是本發(fā)明一示例性實施例示出的一種多CPU架構下的CPU運行狀態(tài)調試系統(tǒng)的結構圖。

具體實施方式

本發(fā)明實施例提供的多CPU架構下的CPU運行狀態(tài)調試方案,解決了背景技術中所介紹的多CPU架構下SOC芯片中部分被裁掉調試接口的CPU難以被正常調試的問題。

為了使本技術領域的人員更好地理解本發(fā)明實施例中的技術方案,并使本發(fā)明實施例的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖對本發(fā)明實施例中的技術方案作進一步詳細的說明。

請參考附圖1,圖1為本發(fā)明一示例性實施例示出的一種應用場景示意圖。如圖1所示,該應用場景包括上位機2、多CPU架構下的SOC芯片1以及共享存儲器3,該SOC芯片1包括第一CPU11和第二CPU12;其中,第一CPU11存在調試接口,而第二CPU無調試接口。

本發(fā)明下述實施例提供的CPU運行狀態(tài)調試方法,通過SOC芯片1的第一CPU11的調試接口能夠獲取第二CPU12的運行狀態(tài)調試結果,然后上位機2向第一CPU11發(fā)送讀取信號,通過第一CPU11的調試接口讀取將該運行狀態(tài)調試結果。由于第一CPU11存在調試接口,因此上位機1可通過相應地調試工具以查看該調試接口,其中,調試工具包括與能夠為SOC芯片連接的調試轉接設備,負責上位機2與SOC芯片1之間的連接,如通過通用數據線SUB和SOC芯片的DEBUG端口之間進行連接;還負責通用數據線USB和DEBUG端口之間的數據傳輸和轉換。并通過該調試接口將相應的調試指令輸入至第一CPU11,并控制第一CPU11向共享存儲器中寫入該調試指令;由于共享存儲器3中的信息第一CPU11和第二CPU12均可共享,因此,第二CPU12能夠接收到該調試指令,并根據該調試指令產生相應的運行狀態(tài)調試結果,通過第二CPU12將該運行狀態(tài)調試結果發(fā)送至共享存儲器3中,第一CPU11能夠從共享存儲器3中獲取該運行狀態(tài)調試結果,并通過調試接口發(fā)送至上位機,從而達到調試第二CPU12的目的。具體請參見本發(fā)明下述各實施例的內容,其中下述實施例的CPU運行狀態(tài)調試方法,可運行于所述上位機內。

請參考附圖2,圖2是本發(fā)明一示例性實施例示出的一種多CPU架構下的CPU運行狀態(tài)調試方法的流程示意圖。如圖2所示,CPU運行狀態(tài)調試方法包括:

S110:通過第一CPU的調試接口啟動第一CPU,通過所述第一CPU設置所述共享存儲器內的調試結果共享地址。

調試接口能夠用于調試CPU的運行狀態(tài),如對指定的CPU運行區(qū)域進行枚舉,與指定的該CPU運行區(qū)域進行交互,通過調試接口獲取指定CPU運行區(qū)域的調試結果,與目標公共語言運行庫CLR進行交互等。通過調試接口能夠向第一CPU發(fā)送觸發(fā)信號,以觸發(fā)該第一CPU的啟動。例如:通過調試接口向共享存儲器的低位啟動地址中寫入啟動信號,并通過該共享存儲器將啟動信號發(fā)送至第一CPU,從而觸發(fā)第一CPU啟動,在第一CPU啟動后,通過第一CPU設置共享存儲器內的調試結果共享地址,從而將第二CPU的運行調試結果存放至該調試結果共享地址中,能夠通過第一CPU直接從該共享地址中讀取第二CPU的運行調試結果,提高讀取效率。

S120:通過調試接口控制第一CPU向共享存儲器的第二CPU跳轉指令存放地址中寫入第二CPU跳轉指令,其中,所述第二CPU跳轉指令用于控制所述第二CPU在所述共享存儲器的調試指令存放地址中寫入運行調試指令后,跳轉至所述共享存儲器中的調試指令存放地址。

由于第一CPU和第二CPU均可訪問共享存儲器,因此通過調試接口控制第一CPU向共享存儲器的調試指令存放地址中寫入第二CPU跳轉指令,能夠在第一CPU控制第二CPU啟動后,控制第二CPU讀取該調試指令存放地址中的第二CPU跳轉指令,從而控制第二CPU在一定條件下跳轉至調試指令存放地址,如在確定共享存儲器的調試指令存放地址中寫入運行調試指令后,跳轉至調試指令存放地址,從而讀取該調試指令存放地址中的運行調試指令,其中,第二CPU首先跳轉至調試指令存放地址中的初始地址。

其中,第二CPU與第一CPU的啟動地址位不同,優(yōu)選地,第一CPU的啟動方式為低位啟動,第二CPU的啟動方式為高位啟動,例如第一CPU的啟動地址位為0,而第二CPU的啟動地址位為0XFFFF0000,從而實現第一CPU和第二CPU的先后啟動。當第二CPU存在多個時,需要在SOC芯片上的并發(fā)總線SBUS上進行高位啟動地址的地址偏移,由第一CPU按照預定順序控制多個第二CPU的啟動。

另外,在控制第二CPU啟動之前,還需要配置第二CPU與共享存儲器之間的通信連接,如異步收發(fā)傳輸器UART模塊的配置等。

S130:通過調試接口控制第一CPU向共享存儲器的調試指令存放地址中寫入運行調試指令,其中,運行調試指令用于調試第二CPU的運行狀態(tài)。

S140:控制第二CPU根據第二CPU跳轉指令,從調試指令存放地址中讀取運行調試指令,根據運行調試指令調試第二CPU的運行狀態(tài),將產生的運行狀態(tài)調試結果寫入調試結果共享地址中。

由于第一CPU與第二CPU均與共享存儲器連接,并且第一CPU存在調試接口,因此通過調試接口控制第一CPU向共享存儲器的調試指令存放地址中寫入運行調試指令,能夠通過第二CPU訪問該共享存儲器,讀取該運行調試指令,以調試自身的運行狀態(tài)。由于第二CPU跳轉指令具有控制第二CPU在共享存儲器的調試指令存放地址中寫入運行調試指令后,跳轉至調試指令存放地址的功能;因此,通過第二CPU執(zhí)行第二CPU跳轉指令的內容,能夠從調試指令存放地址中讀取運行調試指令。

通過上述方法解決了背景技術中提到的CPU沒有調試接口而難以被正常調試的問題。其中,由于本發(fā)明實施例中,涉及多CPU之間訪問共享存儲器,因此,共享存儲器可優(yōu)選為同步動態(tài)隨機存取存儲器,如雙倍速率同步動態(tài)隨機存儲器DDR,以保證數據的傳輸的同步性。

S150:通過調試接口控制第一CPU從調試結果共享地址中讀取運行狀態(tài)調試結果。

綜上,本發(fā)明實施例提供的多CPU架構下的CPU運行狀態(tài)調試方法,首先通過啟動存在調試接口的第一CPU,通過第一CPU控制第二CPU啟動,通過該第一CPU的調試接口向共享存儲器的第二CPU跳轉指令存放地址中寫入第二CPU跳轉指令,以通過共享存儲器中的第二CPU跳轉指令控制沒有調試接口的第二CPU跳轉至共享存儲器中的調試指令存放地址,以及向共享存儲器中寫入運行調試指令,控制第二CPU根據上述第二CPU跳轉指令讀取該運行調試指令,以調試第二CPU的運行狀態(tài),從而能夠控制第二CPU向共享存儲器中寫入運行狀態(tài)調試結果,通過第一CPU的調試接口控制第一CPU從共享存儲器中讀取第二CPU的運行狀態(tài)調試結果。本發(fā)明的技術方案能夠通過多CPU架構下存在調試接口的CPU,能夠通過有調試接口的CPU獲取無調試接口的CPU的運行狀態(tài)調試結果,從而能夠對無調試接口的CPU的運行狀態(tài)進行調試,減少該CPU出現的運行狀態(tài)故障。

為了準確控制第一CPU和第二CPU訪問共享存儲器的時序,可通過設置通信標識以控制CPU與共享存儲器之間的交互,并在共享存儲器中分配對應的通信標識存放地址,以存放上述通信標識,其中可用32位系統(tǒng)中一個字符word中的高30bit位表示內存中的通信標識存放地址。

作為一種優(yōu)選的實施例,如圖3所示,在啟動第一CPU時,還需要通過第一CPU定義通信標識在共享存儲器內的通信標識存放地址和通信標識在通信標識存放地址中的二進制表示形式。圖2中的步驟S150:通過調試接口控制第一CPU從調試結果共享地址中讀取運行狀態(tài)調試結果,包括:

S210:控制第二CPU向共享存儲器內的通信標識存放地址中寫入第一通信標識,第一通信標識包括調試結果生成確認信息以及調試結果共享地址和存放長度。

S220:通過調試接口控制第一CPU從通信標識存放地址中讀取第一通信標識。

通信標識用于控制CPU與共享存儲器之間的交互,該通信標識能夠表示CPU的運行狀態(tài);并且通信標識在共享存儲器中占用一定的通信標識存放地址,例如,通信標識可占用32位系統(tǒng)中一個word來表示,其中的低2bit表示通信標識的內容,高30bit表示通信標識在共享存儲器中的存放地址。其中,通過第二CPU向共享存儲器中的通信標識存放地址中寫入第一通信標識,以通過共享存儲器告知第一CPU:調試結果已經生成和調試結果的存放地址和存放長度,進而能夠使得第一CPU從共享存儲器的調試結果共享地址中調取該調試結果,完成第二CPU的調試。

S230:根據第一通信標識中的調試結果共享地址和存放長度,通過調試接口控制第一CPU讀取運行狀態(tài)調試結果。

在第一CPU獲取該第一通信標識后,第一CPU能夠確知運行狀態(tài)調試結果的存放地址和存放長度,進而通過調試接口控制第一CPU讀取運行狀態(tài)調試結果,完成對第二CPU的運行狀態(tài)的調試。

S240:通過調試接口控制第一CPU向共享存儲器的通信標識存放地址中寫入第二通信標識,第二通信標識用于確認運行狀態(tài)調試結果讀取完畢。

S250:根據第二通信標識,控制共享存儲器釋放調試結果共享地址中的運行狀態(tài)調試結果。其中,能夠通過第二CPU從通信標識存放地址中讀取該第二通信標識,然后第二CPU根據該第二通信標識向共享存儲器中發(fā)送釋放命令,以控制共享存儲器釋放調試結果共享地址中的運行狀態(tài)調試結果。

在第一CPU讀取共享存儲器中運行狀態(tài)調試結果后,共享存儲器的調試結果共享地址中還是存在該運行狀態(tài)調試結果的;在通過調試接口控制第一CPU向共享存儲器中寫入第二通信標識后,共享存儲器釋放該地址中的運行狀態(tài)調試結果,從而能夠節(jié)省共享存儲器的資源,以方便下次運行狀態(tài)調試結果的存放。

作為一種優(yōu)選的實施例,如圖7所示,在通訊協(xié)議中能夠設計四個通信標識:初始化標識Init、發(fā)送標識Send、確認標識ACK和結束標識Finish,分別表示第一CPU和第二CPU的初始化、發(fā)送、確認和結束四個階段。在初始化階段,共享存儲器中通信標識存放地址中的通信標識為初始化標識Init,此時,第一CPU和第二CPU進行初始化,共享存儲器中的調試結果共享地址處于空閑狀態(tài),第一CPU處于等待狀態(tài);在發(fā)送階段,共享存儲器內通信標識存放地址中的通信標識為發(fā)送標識Send,此時,第二CPU向共享存儲器發(fā)送運行狀態(tài)調試結果;當第二CPU發(fā)送完畢后,進入確認階段,此時第二CPU向共享存儲器中的通信標識存放地址寫入通信標識ACK,第一CPU從共享存儲器中讀取該通信標識,然后從共享存儲器中的調試結果共享地址中讀取對應的運行狀態(tài)調試結果;當第一CPU讀取完畢后,向共享存儲器的通信標識存放地址寫入結束標識Finish,此時,共享存儲器釋放調試結果共享地址中的運行狀態(tài)調試結果的數據。

另外,通過第一CPU的調試接口,可將運行狀態(tài)調試結果導出,若該調試結果的信息量較大,可提前將導出文件的指令以腳本的形式保存,如圖4所示,圖2所示實施例提供的CPU運行狀態(tài)調試方法,還包括以下步驟:

S310:通過調試接口向第一CPU發(fā)送腳本觸發(fā)指令,其中,腳本觸發(fā)指令用于從第一CPU中導出包含有運行狀態(tài)調試結果的數據文件;

S320:顯示包含有運行狀態(tài)調試結果的數據文件。

其中,作為一種較佳的實施例,在第一CPU接收到第一通信標識時,在從共享存儲器讀取該運行狀態(tài)調試結果時,即可運行腳本觸發(fā)指令,導出包含有運行狀態(tài)調試結果的數據文件;或者在第一CPU從共享存儲器中讀取完畢后,向第一CPU發(fā)送腳本觸發(fā)指令,從第一CPU導出數據文件。

另外,作為一種優(yōu)選的實施例,如圖5所示,在圖2所示實施例中,在步驟S130:通過調試接口控制第一CPU向調試指令存放地址中寫入運行調試指令之前,CPU運行狀態(tài)調試方法還包括以下步驟:

S410:控制第二CPU從第二CPU跳轉指令存放地址中讀取第二CPU跳轉指令。

S420:控制第二CPU向共享存儲器中寫入跳轉指令讀取確認信號,其中,跳轉指令讀取確認信號包括所述第二CPU已讀取所述第二CPU跳轉指令的確認信息。

S430:控制第一CPU從共享存儲器中讀取跳轉指令讀取確認信號,其中,該跳轉指令讀取確認信號,可以為通信標識。

通過上述方法可知,在第二CPU讀取第二CPU跳轉指令后,通過第二CPU向共享存儲器中寫入跳轉指令讀取確認信號,第一CPU從該共享存儲器中讀取該跳轉指令讀取確認信號,能夠及時了解到第一CPU已經實現跳轉功能,此時,第一CPU向共享存儲器中的調試指令存放地址中寫入運行調試指令,能夠使得第二CPU及時讀取該運行調試指令。

另外,在調試指令存放地址中已寫入運行調試指令后,如圖6所示,圖2所示步驟S140:控制第二CPU根據第二CPU跳轉指令,從調試指令存放地址中讀取運行調試指令的步驟,包括:

S510:控制第一CPU向共享存儲器內的通信標識存放地址中寫入第三通信標識,所述第三通信標識用于通知所述調試指令存放地址中已寫入運行調試指令;

S520:控制所述第二CPU從所述通信標識存放地址中讀取第三通信標識后,根據所述第二CPU跳轉指令從調試指令存放地址中讀取上述運行調試指令。

第二CPU跳轉指令雖然能夠控制第二CPU跳轉至調試指令存放地址,然而第二CPU如果在第一CPU向通信標識存放地址中寫入第三通信標識之前就跳轉至調試指令存放地址,則第二CPU將讀取到錯誤的調試指令或讀取到空值。因此,通過第一CPU向共享存儲器內的通信標識存放地址中寫入第三通信標識,能夠在第二CPU讀取該第三通信標識后,觸發(fā)第二CPU跳轉指令,從而控制第二CPU從調試指令存放地址中讀取上述運行調試指令,以提高第二CPU對運行調試指令讀取的成功率。

基于同一發(fā)明構思,本發(fā)明實施例還提供了多CPU架構下的CPU運行狀態(tài)調試系統(tǒng),由于所述系統(tǒng)對應的方法是本申請實施例中的多CPU架構下的CPU運行狀態(tài)調試方法,并且該系統(tǒng)解決問題的原理與方法相似,因此該系統(tǒng)的實施可以參見方法的實施,重復之處不再贅述。

請參見附圖8,圖8為本發(fā)明一示例性實施例示出的一種多CPU架構下的CPU運行狀態(tài)調試系統(tǒng)的結構示意圖,本系統(tǒng)適用的多CPU架構包括第一CPU、第二CPU和共享存儲器,其中,第一CPU存在調試接口,第二CPU無調試接口;如圖8所示,本發(fā)明實施例提供的多CPU架構下的CPU運行狀態(tài)調試系統(tǒng)包括:

第一啟動模塊801,用于通過第一CPU的調試接口啟動第一CPU,建立第一CPU與共享存儲器的通信連接;優(yōu)選地,共享存儲器為同步動態(tài)隨機存取存儲器。

第一寫入模塊802,用于通過調試接口控制第一CPU向共享存儲器的調試指令存放地址中寫入啟動指令,其中,啟動指令用于啟動第二CPU;

第二寫入模塊803,用于當第二CPU啟動時,通過調試接口控制第一CPU向共享存儲器的調試指令存放地址中寫入運行調試指令,其中,運行調試指令用于調試第二CPU的運行狀態(tài);

第一讀取模塊804,用于控制第二CPU從調試指令存放地址中讀取運行調試指令;

調試控制模塊805,用于控制第二CPU根據運行調試指令調試第二CPU的運行狀態(tài);

第三寫入模塊806,用于控制第二CPU將產生的運行狀態(tài)調試結果寫入共享存儲器的調試結果共享地址中;

第二讀取模塊807,用于通過調試接口控制第一CPU從調試結果共享地址中讀取運行狀態(tài)調試結果。

綜上,本發(fā)明實施例提供的多CPU架構下的CPU運行狀態(tài)調試系統(tǒng),首先通過啟動存在調試接口的第一CPU,通過第一CPU控制第二CPU啟動,通過該第一CPU的調試接口向共享存儲器的第二CPU跳轉指令存放地址中寫入第二CPU跳轉指令,以通過共享存儲器中的第二CPU跳轉指令控制沒有調試接口的第二CPU跳轉至共享存儲器中的調試指令存放地址,以及向共享存儲器中寫入運行調試指令,控制第二CPU根據上述第二CPU跳轉指令讀取該運行調試指令,以調試第二CPU的運行狀態(tài),從而能夠控制第二CPU向共享存儲器中寫入運行狀態(tài)調試結果,通過第一CPU的調試接口控制第一CPU從共享存儲器中讀取第二CPU的運行狀態(tài)調試結果。本發(fā)明的技術方案能夠通過多CPU架構下存在調試接口的CPU,能夠通過有調試接口的CPU獲取無調試接口的CPU的運行狀態(tài)調試結果,從而能夠對無調試接口的CPU的運行狀態(tài)進行調試,減少該CPU出現的運行狀態(tài)故障。

作為一種優(yōu)選的實施例,如圖9所示,圖8中的第二讀取模塊807,包括:

第一寫入子模塊8071,用于控制第二CPU向共享存儲器的通信標識存放地址中寫入第一通信標識,第一通信標識包括調試結果生成確認信息以及調試結果共享地址和存放長度;

第一讀取子模塊8072,用于通過調試接口控制第一CPU從通信標識存放地址中讀取第一通信標識;

第二讀取子模塊8073,用于根據第一通信標識中的調試結果共享地址和存放長度,通過調試接口控制第一CPU讀取運行狀態(tài)調試結果;

第二寫入子模塊8074,用于通過調試接口控制第一CPU向共享存儲器的通信標識存放地址中寫入第二通信標識,第二通信標識用于確認運行狀態(tài)調試結果讀取完畢;

釋放子模塊8075,用于控制共享存儲器釋放調試結果共享地址中的運行狀態(tài)調試結果。

作為一種優(yōu)選的實施例,如圖10所示,圖8所示的CPU運行狀態(tài)調試系統(tǒng)還包括以下結構:

指令發(fā)送模塊808,用于通過調試接口向第一CPU發(fā)送腳本觸發(fā)指令,其中,腳本觸發(fā)指令用于從第一CPU中導出包含有運行狀態(tài)調試結果的數據文件;

顯示模塊809,用于顯示包含有運行狀態(tài)調試結果的數據文件。

作為一種優(yōu)選的實施例,如圖11所示,圖8所示的CPU運行狀態(tài)調試系統(tǒng)還包括:

第三讀取模塊810,用于控制第二CPU從共享存儲器的調試指令存放地址中讀取啟動指令,根據啟動指令控制第二CPU自身啟動;

第四寫入模塊811,用于控制第二CPU向共享存儲器寫入啟動確認信號,其中,啟動確認信號包括所述第二CPU已啟動的確認信息;

第四讀取模塊812,用于控制第一CPU從共享存儲器中讀取啟動確認信號。

本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其它實施例的不同之處。

以上所述的本發(fā)明實施方式,并不構成對本發(fā)明保護范圍的限定。任何在本發(fā)明的精神和原則之內所作的修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
阿瓦提县| 阜南县| 永清县| 新沂市| 麟游县| 琼结县| 泽州县| 广东省| 安远县| 侯马市| 全南县| 宁波市| 克山县| 隆尧县| 兴国县| 定边县| 天长市| 南康市| 两当县| 玛纳斯县| 勃利县| 和田县| 锡林郭勒盟| 平凉市| 南安市| 奉贤区| 新田县| 庆云县| 承德县| 富阳市| 买车| 夏河县| 中方县| 阿坝县| 英山县| 吉隆县| 松潘县| 泸水县| 蒲城县| 鱼台县| 青州市|