新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 新型Linux開發工具應對下一代嵌入式系統設計挑戰

        新型Linux開發工具應對下一代嵌入式系統設計挑戰

        作者: 時間:2010-01-14 來源:網絡 收藏
        如今已在實時操作(RTOS)領域占有一席之地。那些過去需要商用或自創及維護的 RTOS 應用正越來越多被 平臺所取代。每家公司這樣做的理由可能不盡相同,但共同的因素是:1)得到操作源代碼的可能性;2)大量的設備驅動程序以及通信棧;3)精通 的軟件工程師團隊正日益壯大;4)從產品材料成本中減去操作版稅部分能帶來顯而易見的成本優勢;5)現在半導體供應商們為基于其硬件參考平臺的系統級芯片(SoC)、工具鏈和參考發布提供了一個 Linux 端口。

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

        本文引用地址:http://www.104case.com/article/152135.htm

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

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

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

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

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

        圖 2: “問題”區域。
        圖 2: “問題”區域。

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

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

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 罗田县| 沛县| 泰兴市| 盘山县| 井陉县| 定西市| 沈丘县| 乐都县| 巢湖市| 枣阳市| 乳源| 丹东市| 芜湖市| 外汇| 廊坊市| 庄河市| 定兴县| 嫩江县| 和龙市| 云浮市| 建阳市| 桦川县| 迁安市| 南充市| 商河县| 门头沟区| 治多县| 武山县| 宿松县| 延安市| 固始县| 玛曲县| 龙川县| 饶阳县| 安达市| 曲靖市| 黔西| 涿鹿县| 瑞安市| 南召县| 仙桃市|