<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 新型Linux開(kāi)發(fā)工具應對下一代嵌入式系統設計挑戰

新型Linux開(kāi)發(fā)工具應對下一代嵌入式系統設計挑戰

作者: 時(shí)間:2010-01-14 來(lái)源:網(wǎng)絡(luò ) 收藏
如今已在實(shí)時(shí)操作(RTOS)領(lǐng)域占有一席之地。那些過(guò)去需要商用或自創(chuàng )及維護的 RTOS 應用正越來(lái)越多被 平臺所取代。每家公司這樣做的理由可能不盡相同,但共同的因素是:1)得到操作源代碼的可能性;2)大量的設備驅動(dòng)程序以及通信棧;3)精通 的軟件工程師團隊正日益壯大;4)從產(chǎn)品材料成本中減去操作版稅部分能帶來(lái)顯而易見(jiàn)的成本優(yōu)勢;5)現在半導體供應商們?yōu)榛谄溆布⒖计脚_的系統級芯片(SoC)、工具鏈和參考發(fā)布提供了一個(gè) Linux 端口。

為了充分利用 Linux 操作系統,原始設備制造商(OEM)可選擇與商用 Linux 供應商合作,或在內部增添工程能力。這兩種模式都已被證明是成功的,但是每種做法都需各自的成本。

本文引用地址:http://dyxdggzs.com/article/152135.htm

不管 OEM 如何選擇,他們的工程師所使用的典型調試模型都是相同的:基于 GDB(GNU Debugger)的客戶(hù)服務(wù)器環(huán)境。如圖1所示,它描述了在調試目標時(shí),附加并運行在每個(gè) Linux 進(jìn)程中的 GDBSERVER 例示。每個(gè) GDBSERVER 都通過(guò)一個(gè)以太網(wǎng)端口與主機通信。

另外,需要特別注意的是,采用這種調試方法,標準 Linux內核被替換成一種“靜態(tài)”版本。僅有少數例外,所有通過(guò) KGDB的目標調試通信都被限制在 RS232 串行鏈路。

圖1: 標準 Linux 調試模型。
圖1: 標準 Linux 調試模型。

這種方法給開(kāi)發(fā)人員帶來(lái)了另一個(gè),即要使用 Linux內核的測試版(instrumented version)。雖然這是可接受的默認Linux調試環(huán)境,但這種方法有一些很明確的局限性。例如,采用多進(jìn)程組成的應用,需要多個(gè) GDBSERVER 運行于有限的目標存儲器上。這可能影響被調試目標的性能,在一些情況下目標性能可降低50%以上。

即使在所有的內核工具和通信通道均可用的最佳情形下,仍有一些區域的代碼在這個(gè)調試范例下難以到達。圖2中說(shuō)明的“問(wèn)題”區域給內核和應用程序開(kāi)發(fā)人員提出了更多。這些區域包括每個(gè)進(jìn)程下大量的線(xiàn)程,以及代碼獨立和數據位置獨立的內核可加載模塊。盡管對于熟練的開(kāi)發(fā)人員來(lái)說(shuō),有可能利用現有技術(shù)合成一個(gè)環(huán)境,來(lái)滿(mǎn)足這些區域的調試需要,但是這種環(huán)境對用戶(hù)非常不友好,且在負載下無(wú)法擴展。

圖 2: “問(wèn)題”區域。
圖 2: “問(wèn)題”區域。

接下來(lái)我們看看在Linux 內核可加載模塊的例子中,模塊加載時(shí)間調用的初始化程序由哪些部分組成。目前的調試范例表明加載了這些模塊,然后利用調試器對其代碼和數據偏移進(jìn)行調整(手動(dòng)和自動(dòng))。但是,這時(shí)模塊的初始化代碼已經(jīng)執行了,無(wú)法在代碼所在區域對問(wèn)題進(jìn)行調試。另一個(gè)使用情形涉及共享庫,這經(jīng)常無(wú)法由 GDBSERVER 或其他類(lèi)似程序很好地處理。即使存在這些問(wèn)題,許多工程師仍在采用 printf(用戶(hù)空間)和 printk(內核空間)作為主要調試幫助。一些調試“工具”帶來(lái)新的軟件問(wèn)題或可能掩蓋現有的問(wèn)題。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>