當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]現(xiàn)有的嵌入式LINUX系統(tǒng)開發(fā)過程中,所有的工程師都疲憊于使用兩種不同的調(diào)試模式分別調(diào)試系統(tǒng)的內(nèi)核和應(yīng)用程序。首先通過一個JTAG調(diào)試工具來配置和啟動LINUX系統(tǒng);嵌入式LINUX系統(tǒng)正常運(yùn)行起來后,就要通過GDB來繼續(xù)調(diào)試工作。

現(xiàn)有的嵌入式LINUX系統(tǒng)開發(fā)過程中,所有的工程師都疲憊于使用兩種不同的調(diào)試模式分別調(diào)試系統(tǒng)的內(nèi)核和應(yīng)用程序。首先通過一個JTAG調(diào)試工具來配置和啟動LINUX系統(tǒng);嵌入式LINUX系統(tǒng)正常運(yùn)行起來后,就要通過GDB來繼續(xù)調(diào)試工作。

LAUTERBACH公司綜合了上述兩種傳統(tǒng)調(diào)試技術(shù)特長提供了一種新的LINUX調(diào)試技術(shù)。

本文以ARM架構(gòu)上的LINUX系統(tǒng)開發(fā)為例,詳細(xì)介紹和對比這三種不同的調(diào)試模式的實現(xiàn)和應(yīng)用。

靜態(tài)調(diào)試模式

通過JTAG調(diào)試接口進(jìn)行軟件調(diào)試的工具一般都只能工作在靜態(tài)調(diào)試模式下,處理器和整個系統(tǒng)都必須被同時掛起。然后調(diào)試工具通過JTAG接口把處理器和目標(biāo)系統(tǒng)的當(dāng)前狀態(tài)獲取并顯示出來(如圖1所示)。

靜態(tài)調(diào)試模式具有如下的優(yōu)點(diǎn):

● 靜態(tài)調(diào)試模式唯一的環(huán)境需求就是目標(biāo)系統(tǒng)必須支持JTAG調(diào)試標(biāo)準(zhǔn),該調(diào)試模式最大的優(yōu)點(diǎn)就是可以支持從復(fù)位向量表開始調(diào)試;
● 只要調(diào)試工具支持LINUX和MMU調(diào)試,就可以實現(xiàn)對LINUX內(nèi)核及進(jìn)程越界等問題的調(diào)試;
● 如果軟件異常,隨時可以掛起處理器,查看當(dāng)前錯
誤代碼及系統(tǒng)狀態(tài);
● 因為處理器處于掛起狀態(tài),內(nèi)核和其它進(jìn)程都不會再對系統(tǒng)造成任何的干擾。

然而靜態(tài)調(diào)試模式也有其不足之處,一旦處理器被掛起,所有的通信接口進(jìn)程同時被終止。造成的結(jié)果就是所有通過Ethernet、Bluetooth或者CAN等接口和處理器進(jìn)行通信的外部設(shè)備, 都會因為等待響應(yīng)超時而中斷連接。因此通過靜態(tài)模式進(jìn)行調(diào)試時,即使你只調(diào)試其中的一個進(jìn)程或函數(shù),也有可能改變整個系統(tǒng)的狀態(tài)和配置;接下來再繼續(xù)運(yùn)行和調(diào)試程序,就無法保證系統(tǒng)的完整性和連續(xù)性,所以后續(xù)的調(diào)試可能就沒有任何意義。

動態(tài)調(diào)試模式

GDB 調(diào)試模式是嵌入式LINUX系統(tǒng)的通用的動態(tài)調(diào)試模式。 在該模式下,可以實現(xiàn)只對當(dāng)前進(jìn)程掛起,系統(tǒng)的內(nèi)核和其它的所有進(jìn)程都繼續(xù)處于運(yùn)行狀態(tài)。

然而GDB是一個純粹的軟件調(diào)試工具,同時需要下面的軟件環(huán)境才可以實現(xiàn):

● 目標(biāo)系統(tǒng)上要有活動的GDB Server LINUX進(jìn)程

● 主機(jī)端要有相應(yīng)的調(diào)試軟件,例如TRACE32(如圖2所示)

TRACE32與GDB Server通過RS232或者Ethernet接口進(jìn)行通信,收集當(dāng)前被掛起的進(jìn)程的狀態(tài)信息。但是要實現(xiàn)動態(tài)調(diào)試模式,還必須建立在如下兩個條件都成立的基礎(chǔ)之上:

● 目標(biāo)系統(tǒng)已經(jīng)被完全正確的初始化并正確啟動

● GDB Server 永遠(yuǎn)處于活動狀態(tài)——即通信接口已經(jīng)正確運(yùn)行,處理器或GDB Server不會被其它程序錯誤的掛起

綜上所述,兩種調(diào)試模式都有各自的優(yōu)點(diǎn)和不足,靜態(tài)調(diào)試模式比較容易實現(xiàn),操作也比較簡單,但是無法保證系統(tǒng)的連續(xù)和完整性;動態(tài)調(diào)試模式環(huán)境需求比較復(fù)雜。因此,LAUTERBACH提供了可以實現(xiàn)上述兩種調(diào)試模式的調(diào)試工具,在完全克服了各自的缺陷的同時充分發(fā)揮了各自的優(yōu)勢,實現(xiàn)了嵌入式LINUX調(diào)試技術(shù)的飛躍。

集成的靜態(tài)和動態(tài)調(diào)試模式

針對嵌入式LINUX系統(tǒng),支持集成的靜態(tài)和動態(tài)調(diào)試模式的TRACE32調(diào)試工具工作原理如下(如圖3所示):

1. TRACE32調(diào)試工具通過JTAG接口進(jìn)入靜態(tài)調(diào)試模式。在靜態(tài)模式下首先完成對目標(biāo)系統(tǒng)的硬件和動態(tài)調(diào)試模式(GDB)的環(huán)境配置。
2. 如果目標(biāo)系統(tǒng)初始化和啟動程序是調(diào)試重點(diǎn),就使用靜態(tài)調(diào)試模式進(jìn)行調(diào)試。
3. 目標(biāo)系統(tǒng)正確啟動完成后,TRACE32可以切換為動態(tài)調(diào)試模式,從而實現(xiàn)對應(yīng)用程序的動態(tài)調(diào)試。
4.如果在動態(tài)調(diào)試過程中,需要對系統(tǒng)重新做新的配置和初始化。TRACE32也支持隨時再把系統(tǒng)切換到靜態(tài)調(diào)試模式。

同時,由于集成的靜態(tài)和動態(tài)調(diào)試模式的實現(xiàn),下面的許多新屬性也被添加到動態(tài)調(diào)試模式里。

● 對于基于ARM架構(gòu)的處理器,可以以調(diào)試通信通道(DCC)為動態(tài)調(diào)試模式的信息通信接口。這樣只需要一個JTAG接口就可以支持集成的靜態(tài)和動態(tài)調(diào)試模式。
● 對兩個或多個進(jìn)程進(jìn)行同時調(diào)試。


將DCC作為通信接口

在ARM的架構(gòu)下,JTAG接口中已經(jīng)包含DCC通信接口。當(dāng)應(yīng)用程序在目標(biāo)處理器上運(yùn)行時,從原理上講通過DCC實現(xiàn)如下兩個模塊間信息通信是完全可行的。

● 主機(jī)端的調(diào)試軟件

● 目標(biāo)系統(tǒng)上的任何應(yīng)用程序—通過GDB Server

因此,如果TRACE32 采用DCC 作為和GDB Server 通信的接口,就不再需要額外的通信接口來實現(xiàn)對動態(tài)調(diào)試模式的支持(如圖4所示)。

多個進(jìn)程同時調(diào)試

在實際的調(diào)試過程中,經(jīng) 常需要對多個進(jìn)程進(jìn)行同時的調(diào)試。為了實現(xiàn)該屬性,LAUTERBACH為動態(tài)調(diào)試模式提供了T32Server模塊。如果T32Server作為一個LINUX的進(jìn)程從終端窗口中被啟動,就可以實現(xiàn)如下的命令和操作:

● 啟動進(jìn)程(TASK.RUN)
 ● 選擇運(yùn)行進(jìn)程(TASK.SELECT)
 ● 停止進(jìn)程(TASK.KILL)

當(dāng)一個進(jìn)程被啟動并選中后,T32Server就會給每個進(jìn)程分配一個獨(dú)立的GDB Server(如圖5所示),再配合上面的三條TASK操作命令就可以實現(xiàn)多個進(jìn)程的同時調(diào)式。用戶可以通過命令(TASK.LIST)查看當(dāng)前的進(jìn)程信息。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉