一種異構(gòu)多核調(diào)試系統(tǒng)與方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及異構(gòu)多核系統(tǒng)的調(diào)試技術(shù)領(lǐng)域,尤其涉及一種異構(gòu)多核調(diào)試系統(tǒng)與方法。
【背景技術(shù)】
[0002]SOC(System-on-a-chip,片上系統(tǒng))是都整合了很多IP資源的集合體,SoC芯片的主要特點(diǎn)就是把一整套方案的不同模塊,包括中央處理器,一次性的制作在一顆芯片中。一顆SoC芯片可以有一個(gè)或者幾個(gè)MCU,CPU或DSP,在芯片整體架構(gòu)搭建完畢之后,需要有一個(gè)統(tǒng)一的調(diào)試方法來(lái)對(duì)芯片內(nèi)的所有模塊以及系統(tǒng)軟件進(jìn)行調(diào)試。
[0003]對(duì)于一個(gè)異構(gòu)多核系統(tǒng),大多數(shù)情況是不同的處理器核心一般運(yùn)行不同的操作系統(tǒng)。對(duì)于很多嵌入式操作系統(tǒng)而言,通常只是導(dǎo)出一個(gè)處理器核心的調(diào)試信息,對(duì)于其他處理器核,調(diào)試手段只能依賴于硬件調(diào)試接口 JTAG來(lái)實(shí)現(xiàn),而且這種調(diào)試手段往往只能用于工程開(kāi)發(fā)模式,不適合于量產(chǎn)和商用的后續(xù)維護(hù)和更新。
[0004]目前市面上,常用的做法是把其他處理器核的日志緩存區(qū)log buffer傳遞到linux系統(tǒng)中,由Linux系統(tǒng)導(dǎo)出,這種方法一般獲取的日志信息log的量無(wú)法控制,在日志信息log的量大時(shí),容易發(fā)生日志信息log丟失的情況,而且從獲取的大量日志信息log中提取有用信息,需要花費(fèi)許多時(shí)間;由于受存儲(chǔ)區(qū)大小的限制,當(dāng)存儲(chǔ)的log量較大時(shí),存儲(chǔ)系統(tǒng)后面接收的日志信息log會(huì)覆蓋前面的日志信息log或?qū)⑶懊娴膌og信息丟棄。這種方法是一種被動(dòng)調(diào)試的方法,只能打印靜態(tài)的日志信息log。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是克服上述現(xiàn)有技術(shù)存在的不足,提出一種異構(gòu)多核調(diào)試系統(tǒng)與方法,方便了生產(chǎn)過(guò)程中的調(diào)試工作以及后續(xù)的客戶支持,
[0006]—方面,本發(fā)明提供了一種異構(gòu)多核調(diào)試系統(tǒng),該系統(tǒng)包括:1/0接口配置模塊、主處理器和至少一個(gè)從處理器;1/0接口配置模塊,用于接收外部診斷命令,并將所述診斷命令發(fā)送給主處理器;以及接收來(lái)自主處理器的診斷結(jié)果,并輸出到外部;主處理器,用于接收診斷命令,并確定由主處理器處理診斷命令,還是由至少一個(gè)從處理器中的指定從處理器處理診斷命令;若由主處理器處理診斷命令,則主處理器將診斷結(jié)果通過(guò)1/0接口配置模塊輸出到外部;若由主處理器從至少一個(gè)從處理器中的指定從處理器處理所述診斷命令,則從處理器將診斷結(jié)果通過(guò)主處理器和1/0接口配置模塊輸出到外部。
[0007]另一方面,本發(fā)明提供了一種異構(gòu)多核調(diào)試方法,應(yīng)用于由1/0接口配置模塊、主處理器和至少一個(gè)從處理器構(gòu)成的系統(tǒng)該步驟包括:
[0008]接收診斷命令,并根據(jù)診斷命令的診斷處理函數(shù)的標(biāo)識(shí)信息,查找標(biāo)識(shí)信息對(duì)應(yīng)的診斷處理函數(shù)的位置;若診斷處理函數(shù)在主處理器上,則由主處理器執(zhí)行診斷處理函數(shù),并將診斷結(jié)果通過(guò)1/0接口配置模塊輸出到外部;若診斷處理函數(shù)不在主處理器上,則由主處理器從至少一個(gè)從處理器中確定標(biāo)識(shí)信息對(duì)應(yīng)的從處理器執(zhí)行診斷處理函數(shù),并將診斷結(jié)果通過(guò)主處理器和I/o接口配置模塊輸出到外部。
[0009]本發(fā)明實(shí)施例中用戶、PC機(jī)或設(shè)備應(yīng)用發(fā)出的診斷命令diag command —方面可以生成調(diào)試信息,比如LOG信息,另一方面可以觸發(fā)特定的事件獲取相應(yīng)的信息。本發(fā)明實(shí)施例通過(guò)主動(dòng)的調(diào)試一方面實(shí)現(xiàn)了對(duì)系統(tǒng)中所有處理器獲取調(diào)試信息量的控制、調(diào)試信息類別的篩選和信息輸出的統(tǒng)一性,另一方面提供了一種對(duì)異構(gòu)多核系統(tǒng)的在線診斷方法和接口,方便了生產(chǎn)和開(kāi)發(fā)中的調(diào)試工作和后續(xù)的客戶支持,以及可以通過(guò)對(duì)系統(tǒng)接口外接設(shè)備實(shí)現(xiàn)多種控制,具備了良好的靈活性和擴(kuò)展性。
【附圖說(shuō)明】
[0010]為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0011]圖1為本發(fā)明實(shí)施例提供的一種異構(gòu)多核調(diào)試系統(tǒng)的結(jié)構(gòu)示意圖;
[0012]圖2為圖1中主處理器的內(nèi)部結(jié)構(gòu)示意圖;
[0013]圖3為圖1中至少一個(gè)從處理器中任一從處理器的內(nèi)部結(jié)構(gòu)示意圖;
[0014]圖4為圖1中應(yīng)用處理器AP與從處理器間的結(jié)構(gòu)示意圖;
[0015]圖5為本發(fā)明實(shí)施例提供的一種異構(gòu)多核調(diào)試方法的流程示意圖
【具體實(shí)施方式】
[0016]下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
[0017]本發(fā)明實(shí)施例中用戶、PC機(jī)或設(shè)備應(yīng)用發(fā)出的診斷命令diag command —方面可以生成調(diào)試信息,另一方面可以觸發(fā)特定的事件獲取相應(yīng)的信息。
[0018]圖1為本發(fā)明實(shí)施例提供的一種異構(gòu)多核調(diào)試系統(tǒng)的結(jié)構(gòu)示意圖。本發(fā)明實(shí)施例將異構(gòu)多核S0C調(diào)試系統(tǒng)的所有處理器核心當(dāng)成一個(gè)整體系統(tǒng),按核心和功能劃分不同的組分;如圖1所示,調(diào)試系統(tǒng)包括:1/0接口配置模塊100、主處理器110和從處理器120。處理器可以是CPU,MCU, DSP,并且在各個(gè)處理器上還可以進(jìn)一步劃分成具體功能的處理器,比如EFS,RPC,Power, Wifi等。其中,從處理器120可以是第一從處理器120、第二從處理器120、…或第N從處理器120中的一個(gè)或多個(gè),其中,將主處理器110作為至少一個(gè)從處理器120的中繼路由,并且為了達(dá)到隔離數(shù)據(jù)信息和控制指令的效果,實(shí)施例將I/O接口配置模塊100以及處理器間通信的通道拆分成控制邏輯通道和信息傳輸邏輯通道,從而實(shí)現(xiàn)邏輯通道的時(shí)分復(fù)用,保證了控制邏輯通道不會(huì)因?yàn)樾畔鬏斶壿嬐ǖ赖拇髷?shù)據(jù)量導(dǎo)致控制邏輯通道丟失必要信息。
[0019]用戶或PC機(jī)900通過(guò)發(fā)送診斷命令,對(duì)系統(tǒng)中存在的調(diào)試信息進(jìn)行讀取,主處理器110通過(guò)I/O接口配置模塊100的控制邏輯通道接收該診斷命令,該診斷命令攜帶有診斷處理函數(shù)diagnostic commandhandler的標(biāo)識(shí)信息、對(duì)象信息、觸發(fā)事件中的一種或多種信息。主處理器110從自身或至少一個(gè)從處理器120中查找標(biāo)識(shí)信息對(duì)應(yīng)的診斷處理函數(shù)。在系統(tǒng)啟動(dòng)時(shí),系統(tǒng)從內(nèi)部或外部的存儲(chǔ)器RAM主動(dòng)為主處理器110和至少一個(gè)從處理器120提供存儲(chǔ)空間。
[0020]若主處理器100存在處理該診斷命令的診斷處理函數(shù),則由主處理器110執(zhí)行診斷處理函數(shù),輸出調(diào)試信息和處理返回值,輸出的調(diào)試信息通過(guò)I/O接口配置模塊100的信息傳輸邏輯通道發(fā)送到用戶或PC機(jī)900 ;若主處理器100不存在處理該診斷命令的診斷處理函數(shù),則由標(biāo)識(shí)信息對(duì)應(yīng)的從處理器120執(zhí)行診斷處理函數(shù),輸出調(diào)試信息和處理返回值,輸出的調(diào)試信息發(fā)送到主處理器100,并通過(guò)I/O接口配置模塊100的信息傳輸邏輯通道發(fā)送到用戶或PC機(jī)900。其中,輸出的調(diào)試信息不僅包括具體的log外,還包括具體數(shù)據(jù)結(jié)構(gòu)的物理值;輸出的處理返回值可以隨調(diào)試信息一同輸出,用于通知用戶/PC診斷過(guò)程是否成功,也可以提供給系統(tǒng)內(nèi)其他應(yīng)用模塊。主處理器可以是應(yīng)用處理器AP。
[0021]本發(fā)明實(shí)施例通過(guò)主動(dòng)的動(dòng)態(tài)調(diào)試不僅實(shí)現(xiàn)了對(duì)獲取的調(diào)試信息量的控制與篩選,還可以通過(guò)系統(tǒng)接口外接設(shè)備實(shí)現(xiàn)多種控制,具備良好的靈活性和擴(kuò)展性,方便了生產(chǎn)過(guò)程中的調(diào)試工作以及后續(xù)的客戶支持。
[0022]圖2為圖1中主處理器的內(nèi)部結(jié)構(gòu)示意圖;圖3為圖1中至少一個(gè)從處理器中任一從處理器的內(nèi)部結(jié)構(gòu)示意圖。如圖2所示,主處理器110包括:主控表master comm