<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > SldView嵌入式Linux集成開發(fā)環(huán)境

          SldView嵌入式Linux集成開發(fā)環(huán)境

          ——
          作者: 時間:2008-01-11 來源:電子產品世界 收藏

            建華科技經過多年研發(fā),成功推出SldView嵌入式Linux集成開發(fā)環(huán)境。SldView運行于Windows系統中,支持ucosii、ucLinux、Linux三種嵌入式操作系統的開發(fā)。支持從編輯代碼、交叉編譯、交叉調試的開發(fā)全過程,支持Linux內核、驅動、任務級、模塊等動態(tài)調試,支持內核、驅動、任務、模塊等同步調試。

          1. 當前嵌入式Linux開發(fā)模式
            嵌入式系統通常為一個資源受限的系統。直接在嵌入式系統的硬件平臺上編寫軟件比較困難,有時甚至是不可能的。一般流程見圖1。目前,一般采用的辦法是,先在通用計算機上編寫程序,然后,通過交叉編譯,生成目標平臺上可運行的二進制代碼格式,最后下載到目標平臺上的特定位置上運行

            第一步,建立嵌入式Linux交叉開發(fā)環(huán)境。目前,常用的交叉開發(fā)環(huán)境主要有開放和商業(yè)兩種類型。交叉開發(fā)環(huán)境是指編譯、鏈接和調試嵌入式應用軟件的環(huán)境。它與運行嵌入式應用軟件的環(huán)境有所不同,通常采用宿主機/目標機模式,在宿主機上編寫好源代碼及相關的配置文件。

            第二步,交叉編譯和鏈接。在完成嵌入式軟件的編碼之后,就是進行編譯和鏈接,以生成可執(zhí)行代碼。由于開發(fā)過程大多是在Intel公司x86系列CPU的通用計算機上進行的,而目標環(huán)境的處理器芯片卻大多為ARM、MIPS、PowerPC、DragonBall等系列的微處理器,這就要求在建立好的交叉開發(fā)環(huán)境中進行交叉編譯和鏈接。通過編譯連接后即可下載的目標機運行。
           
            在嵌入式系統開發(fā)中完成編譯連接只是開發(fā)工作的一小部分,而令廣大開發(fā)人員頭痛的則是下載到目標機進行調試。多數的嵌入式系統開發(fā)都是基于操作系統的,而目前大多數集成開發(fā)環(huán)境都不支持Linux調試,僅有的幾種開發(fā)平臺功能簡單卻昂貴的費用讓大多企業(yè)望而卻步。

          2. SldView集成開發(fā)工具的特色

            SldView不僅實現目前常用的集成開發(fā)環(huán)境的開發(fā)、調試功能外,還提供了Linux內核、驅動、任務級、模塊等動態(tài)調試,這是廣大開發(fā)人員最急切的需要。它完全支持OS內核調試,并可以進行任務級與線程的實時調試。SldView可以對多個任務同時進行跟蹤調試,動態(tài)檢測到任務的啟動,然后加載任務的符號表,開發(fā)人員就完全控制了任務的運行,并可以在內核態(tài)及任務態(tài)間自由切換。此外SldView還提供了內存管理、任務綁定、Timer察看、任務Time管理、任務上下文察看等調試功能,極大的方便了開發(fā)人員OS調試,使開發(fā)效率大幅度提高。

            在代碼級調試方面SldView也非常優(yōu)秀。SldView提供圖形和命令行兩種調試方式并支持軟件模擬功能,設計人員可以動態(tài)選擇程序下載地,全球領先的程序下載速度,最快下載速度可以達到800k/s,尤其適用于用戶調試代碼量大的程序。強大的斷點設置、變量察看、寄存器察看、自定義寄存器察看、板上寄存器察看、函數堆棧顯示等功能可以讓設計人員掌握程序運行的每一個細節(jié)。此外SldView還支持源代碼窗口、匯編程序窗口、混合窗口的顯示。

            SldView集成開發(fā)環(huán)境界面直觀友好,類似于MS Visual Stduio。設計人員可以很方便的創(chuàng)建、配置工程,然后編譯、調試程序,也可以直接打開編譯好的目標文件來調試。SldView完全支持gcc, ads等編譯器生成的目標代碼的調試。設計人員可以根據自己的需要制定開發(fā)環(huán)境,也可以選擇試用英文版。

          3. 應用實例

          3.1 Linux應用程序開發(fā)

            但由于沒有合適的開發(fā)環(huán)境,Linux應用程序開發(fā)效率往往都很低,特別是用戶進程的調試非常困難,而SLDView的出現使這些問題得以解決。

            使用SLDView的Linux工程向導或其他文件編輯器新建立應用程序源文件和相關配置文件。在SLDView配置好OS,運行config、dep、make命令即可編譯Linux,如果沒有報錯則會生成相關的二進制文件。使用SLDView鏈接開發(fā)板并下載二進制文件,這時就可以調試Linux應用程序了。

            SLDView會自動攔截Linux運行過程中的每一個進程,并提示開發(fā)人員是否進行調試。例如當開發(fā)人員運行應用程序“LCD”時,該進程被SLDView攔截并掛起,如下圖:
          同時SLDView會提示是否調試該進程:
          選擇“是”打開相應的.elf文件:
          現在就可以像調試普通程序一樣調試該進程了。

          3.2 設備驅動程序調試

            在嵌入式系統開發(fā)中,其中很大的工作量都都是為各種設備編寫驅動程序,除非不用操作系統而直接控制硬件。對于任何一位內核代碼的開發(fā)人員來說,最急迫的問題之一就是如何完成調試。在調試工具缺乏和功能不完善的情況下,大多開發(fā)人員都選擇使用普通的打印調試方法,這樣的缺點也是顯而易見的:調試效率低、不能完全掌握變量值的變化、特別是在大型循環(huán)結構中printk幾乎是無法用來調試的。SLDView強大的調試功能可以讓驅動程序和OS內核調試象調試普通C程序一樣簡單。

            先編寫好驅動程序源代碼并加入到OS內核中,使用SLDView重新編譯OS。如果沒有報錯則會生成相應的.elf文件

            在SLDView中打開編譯好的.elf文件并下載到目標板,定位到編寫好的驅動程序設置斷點。本例中驅動程序原文件為sc344b0fb.c,設置斷點到:
          int __init s3c44b0fb_init(void)

            這樣系統在加載sc344b0fb驅動程序時運行到int __init s3c44b0fb_init(void)函數入口會掛起,開發(fā)人員可以單步運行并通過自動變量、自定義變量和寄存器窗口來察看當前程序的運行情況。

          4. 結論

            SLDView集成開發(fā)環(huán)境的出現為當前大中型嵌入式系統開發(fā)商提供了高效的設計調試平臺,降低了操作系統調試難度,提高了開發(fā)效率。同時SLDView集成開發(fā)環(huán)境良好的界面和簡單操作也可作為各高等院校教學實驗平臺及科研機構的首選。



          關鍵詞:

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();