當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]從一個(gè)軟件人員的角度看jtag調(diào)試

    我是一個(gè)對(duì)硬件電路幾乎是一竅不通的軟件開(kāi)發(fā)人員,但對(duì)于用jtag仿真器來(lái)做仿真調(diào)試的機(jī)制很感興趣,所以這兩天看了一下有關(guān)的資料,自以為基本上理解了其中的基本運(yùn)行機(jī)制。但僅僅是從軟件的角度去理解,不涉及任何硬件電路的信息。這里把我的認(rèn)識(shí)總結(jié)一下,因?yàn)槲覜](méi)有做過(guò)試驗(yàn),也沒(méi)有條件作試驗(yàn)(我沒(méi)有板子,沒(méi)有仿真器,只有pc, :-( ),很多是根據(jù)網(wǎng)上的資料加上自己的推測(cè),所以可能不太準(zhǔn)確,但我認(rèn)為應(yīng)該八九不離十,呵呵。不過(guò)如果真有錯(cuò)誤或疏漏的話,請(qǐng)各位朋友指出來(lái),共同提高。 

    wiggler是完成一個(gè)從并口到j(luò)tag header串行信號(hào)的轉(zhuǎn)換功能,僅僅是一個(gè)電路,wiggler上面沒(méi)有固件。調(diào)試軟件向并口寫(xiě)入調(diào)試命令,通過(guò)wiggler即可轉(zhuǎn)換成相應(yīng)的jtag信號(hào)。開(kāi)發(fā)機(jī)上的調(diào)試軟件客戶端(sdt中的axd,ads中的adw,gdb client)不需要作改動(dòng),但是需要調(diào)試服務(wù)器,比如cfly網(wǎng)站上的jtag.exe,以及redhat網(wǎng)站上提到的gdb-server for multiiice。調(diào)試服務(wù)器要做的是把來(lái)自調(diào)試器的命令轉(zhuǎn)換成合適的對(duì)并口的訪問(wèn),并口得到的信號(hào)通過(guò)wiggler直接轉(zhuǎn)換成jtag信號(hào)。比如,jtag.exe我猜想它是一個(gè)在某個(gè)已知端口等待的服務(wù)器程序(用dumpbin可以看到它引入了socket dll ws2_32.dll),sdt axd調(diào)試器本身支持遠(yuǎn)程調(diào)試,所以可以在開(kāi)發(fā)環(huán)境中把遠(yuǎn)程IP設(shè)置成本機(jī)ip地址和jtag.exe所等待的端口號(hào)。這樣,axd的調(diào)試命令就會(huì)由jtag.exe得到,他根據(jù)這些命令(具體的協(xié)議為arm的rdi/adp?)向并口寫(xiě)入合適的值。

    再舉一個(gè)例子,redhat網(wǎng)站上提到的gdb-server-multiice(cygwin)。本來(lái)sdt支持通過(guò)multiice的調(diào)試(multiice的實(shí)現(xiàn)原理應(yīng)該比較向下面的bdigdb),sdt通過(guò)集成一個(gè)multice.dll插件(相當(dāng)于上面提到的jtag.exe的腳色,只不過(guò)它因?yàn)槭莂rm 公司的產(chǎn)品,他們清楚sdt的插件機(jī)制,所以該dll可以集成到sdt中去)訪問(wèn)multiice,multiice負(fù)責(zé)根據(jù)收到的命令轉(zhuǎn)換成對(duì)板子jtag口的訪問(wèn)。但gdb不支持通過(guò)multiice調(diào)試,為了在cygwin中通過(guò)multiice用gdb調(diào)試目標(biāo)機(jī),可以在開(kāi)發(fā)機(jī)上跑一個(gè)gdbserver。該gdbserver做的和gdb交互(根據(jù)gdb遠(yuǎn)程調(diào)試協(xié)議),然后將得到的調(diào)試命令轉(zhuǎn)換成multiice.dll的相關(guān)調(diào)用,就是說(shuō)它通過(guò)multiice.dll將命令發(fā)出去,而不是像jtag.exe那樣直接發(fā)給并口,也就是說(shuō)這里其實(shí)又多了一層間接。 

    仔細(xì)想一下,其實(shí)連接jtag仿真器的pc,與運(yùn)行調(diào)試器客戶端的pc其實(shí)應(yīng)該可以不是同一個(gè)機(jī)器的。這是因?yàn)閍xd和gdb都支持遠(yuǎn)程調(diào)試,即使在一臺(tái)機(jī)器上也是通過(guò)遠(yuǎn)程網(wǎng)絡(luò)連接的方式訪問(wèn)jtag.exe/gdb-server-multiice。有條件的不妨試一試驗(yàn)證一下,反正我沒(méi)這個(gè)條件,我連一臺(tái)arm目標(biāo)板都沒(méi)有 : 

    bdigdb是一個(gè)比較高級(jí)的ocd 仿真器,它可以調(diào)試Linux內(nèi)核。他本身就是一個(gè)帶有mcu(好像是68000)、flash、ram的典型的嵌入式系統(tǒng)。他還有cpld,針對(duì)不同的目標(biāo)處理器,它只需要更新cpld和固件即可實(shí)現(xiàn)對(duì)另一種目標(biāo)的支持。哪位解釋一下這里cpld的道理?我是真的搞不懂硬件的東東阿。

    其固件應(yīng)該是實(shí)現(xiàn)了一個(gè)gdbserver,所以開(kāi)發(fā)機(jī)上的調(diào)試器客戶端(gdb client)就不需要做任何修改。gdb客戶端使用gdb的調(diào)試協(xié)議通過(guò)ethernet接口與bidgdb上的gdbserver交互(比如,target remote ip_of_bdigdb port_of_gdbserver_on_bdigdb),bdigdb上的gdbserver根據(jù)得到的命令決定應(yīng)該向jtag口寫(xiě)如什么命令。另外,bdigdb得一大特點(diǎn)是支持帶mmu的linux內(nèi)核調(diào)試,我猜想他可能是在gdbserver的實(shí)現(xiàn)中集成了一個(gè)從虛擬地址到物理地址的轉(zhuǎn)換機(jī)制,調(diào)試時(shí)gdbserver將從gdb來(lái)得虛擬地址轉(zhuǎn)換成物理地址,再根據(jù)該物理地址去訪問(wèn)目標(biāo)機(jī)內(nèi)存空間。至于轉(zhuǎn)換機(jī)制如何得到,與linux在具體體系結(jié)構(gòu)上的實(shí)現(xiàn)有關(guān),比如在x86上一般物理地址加上0xc0000000就得到虛擬地址,在其他體系

    結(jié)構(gòu)入ppc,xscale上也可能有相應(yīng)的轉(zhuǎn)換辦法,這個(gè)有待研究。對(duì)了,據(jù)說(shuō)abtron bdi跟montavista linux關(guān)系密切,聽(tīng)說(shuō)montavista特意在arch/xxx/kernel/head-xxx.s中加入了針對(duì)bdi調(diào)試的的支持代碼。如果沒(méi)有這個(gè)支持的話,一般.....也許....好像....就是剛才提到的用把虛擬地址減去0xc0000000來(lái)轉(zhuǎn)換了,呵呵,還得研究 

    www.ocdemon.com 網(wǎng)站上free software欄目下,提供了上面提到的適合于gdb的gdbserver,它叫l(wèi)ibremote。libremote可以支持多種目標(biāo)機(jī)。 
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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