999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

信息創新環境下的嵌入式軟件交叉調試技術

2022-04-25 08:36:10丁呂繁陳瑋彤王俊翔楊曦
電子元器件與信息技術 2022年2期
關鍵詞:調試環境功能

丁呂繁,陳瑋彤,王俊翔,楊曦

(1.四川大學 計算機學院,四川 成都 610041;2.成都創騰軟件有限公司,四川 成都 610095)

0 引言

為突破國外組織、機構對操作系統配套軟件集成開發環境的壟斷,彌補國內研發的操作系統軟件生態不成熟、國內研發的操作系統對國產處理器支持不充分的問題,本項目實現了一個基于OSGi規范的嵌入式軟件開發環境平臺。該嵌入式軟件開發環境支持銀河麒麟操作系統,可以運行在國產飛騰處理器上,實現了對嵌入式軟件開發過程的信息創新,在自主運行環境上突破代碼編輯、管理、編譯、項目管理、過程控制、項目發布、代碼調試、覆蓋率分析、性能優化等關鍵技術。

嵌入式軟件因其實用性和靈活性,在近年來越來越受到人們的歡迎[1],而嵌入式平臺的軟件開發與桌面軟件開發有很大的不同,其一般需要使用交叉編譯和交叉調試環境,這意味著需要在宿主機上實現代碼的編譯,而代碼的運行則是在目標機上,這使得編譯和調試的過程更加復雜[2]。在一個軟件的開發周期中,軟件調試需要的時間往往占總開發時間的一半以上,一個好的調試環境可以極大地加快軟件的開發速度[3]。

雖然目前已有少量針對國內研發的操作系統的交叉調試軟件[4],但是總體來看,國內研發的操作系統下的交叉調試軟件還是不足。針對目前在適配國內研發的操作系統中嵌入式軟件開發工具的缺失,開發了一個適用于國產銀河麒麟操作系統的嵌入式軟件開發環境。在本文中,主要描述了嵌入式開發環境的調試部分,詳細介紹了實現調試功能的各個組件及其功能,說明了調試流程的運行原理,最后給出了調試過程的圖形化界面。

1 Eclipse平臺

1.1 Eclipse基礎框架

Eclipse項目是一個由多個軟件公司參與研究和推廣的通用集成開發環境,是一個開放源代碼的、使用Java開發的可擴展開發平臺,其核心是動態發現插件(Plugin)的體系結構[5]。Eclipse采用以OSGi規范為基礎實現的一個微內核,該微內核負責處理基本環境的后臺工作,其余工作由按規范開發的插件完成。

Eclipse由多個子系統構成,包括平臺運行庫(Platform Runtime)、工作區(workspace)、工作臺(workbench)、圖形API(SWT/JFace)、Java開發環境插件(JDT)、插件開發環境(PDE)等核心部分[6]。圖1為Eclipse的體系結構。

圖1 Eclipse 體系結構

通過集成來自不同供應商的插件,Eclipse可以不斷擴展,實現各種不同的功能。各個工具建造者通過構建符合Eclipse要求的插件來擴展Eclipse的功能[7]。

Eclipse目前已經成為編寫嵌入式軟件集成開發環境的主流平臺,包含了嵌入式軟件開發調試過程中的各種工具,如源代碼編輯、項目構建、交叉運行、交叉調試、交叉測試等。

1.2 Eclipse插件技術

Eclipse平臺的子系統都依靠插件的形式實現,插件是一種按照指定應用程序接口規范編寫的程序。插件技術使得系統結構清晰明了,提高了可維護性和移植性,便于調整系統功能,每個插件之間的連接關系是通過聲明擴展點和擴展其它插件聲明的擴展點來實現的[8]。

當Eclipse啟動時,平臺運行庫(Platform Runtime)將掃描Plugins目錄下所有插件,然后將插件逐個添加到注冊表中,但此時并不會激活系統注冊表中的插件,而是僅僅加載各個插件的配置文件中的信息,只有當用戶在使用過程中真正需要某個插件時,平臺才會將該插件的執行文件調入內存并激活使用。這種機制可以有效避免內存浪費,當該插件不再使用時,系統將適時將其清除出內存。

擴展點在Eclipse中作為一個松耦合的功能模塊被廣泛使用。在開發插件時,開發人員需要在插件清單中聲明所開發插件的擴展點,提供接口和相關類的最小集合供他人使用。當其它插件需要使用到該插件時,需要聲明該擴展點的擴展項,實現其接口,并引用提供的類或基于提供的類進行創建。

1.3 GDB調試器

GBD是GNU開源組織發布的跨平臺源碼級調試工具,可以用于C/C++等程序的跟蹤調試。在嵌入式系統開發中,開發人員能夠使用GDB以遠程調試的方式控制目標機上的程序,實現單步運行、設置斷點、查看內存信息、和目標平臺交換信息等功能。GDB可以和目標機進行高效的交互,其在遠程調試的動態性和實時性等方面也有明顯優勢[9]。

使用GDB調試器連接目標機時,可以使用通信端口或者TCP/IP的方式進行通信。在進行主從通信時,需要在目標機上維持一個進程,稱之為目標機代理,其作用是執行從宿主機調試器發送過來的調試命令,并及時向宿主機調試器反饋目標機的狀態信息和異常事件。宿主機調試器與目標機代理之間的通信遵循“GDB遠程串行協議”,簡稱“GDB RSP協議”[10]。

2 基于Equinox OSGi框架的交叉調試環境的實現

2.1 交叉調試結構

本嵌入式軟件開發環境的交叉調試功能由三個模塊構成,分別為“目標機管理”、“調試環境”、“控制臺”,調試模塊結構如圖2所示。在我們實現的信息創新集成開發環境中,宿主機搭載了使用國產飛騰處理器的銀河麒麟操作系統,目標機搭載了使用國產龍芯處理器的嵌入式操作系統。

圖2 調試模塊結構

2.1.1 目標機管理

“目標機管理”模塊是宿主機調試類工具和目標機服務器進行通信的中心,由“遠程系統管理插件”和“目標機服務器”構成。“遠程系統管理插件”提供目標機連接的創建、刪除、連接、斷開等功能,“目標機服務器”用于實現宿主機與目標機之間數據的路由和交換功能,可通過網絡方式為遠程宿主機提供調試服務。

其提供以下功能:①目標機連接管理,提供圖形化的用戶界面對目標機連接進行管理;②支持物理通信連接復用,可在單一物理連接上實現多個邏輯連接;③多目標機連接,支持一臺宿主機同時連接多臺目標機;④目標機共享,支持遠程宿主機利用本地宿主機作為跳板,連接目標機。

2.1.2 調試環境

調試環境提供從宿主機下載執行程序到目標機的功能以及在宿主機上控制目標機上代碼運行的功能。在宿主機的源代碼上設置斷點,通過調試環境可以控制目標機運行到斷點處暫停,并且查看和修改目標機當前運行狀態的上下文,如內存數據、寄存器當前值。

調試環境提供基本的調試功能,包括:運行控制、斷點管理、符號表管理、信息查詢、數據修改。為用戶提供了三種斷點:行斷點、表達式斷點、數據斷點。其中,行斷點和表達式斷點都可以由軟件斷點和硬件斷點兩種方式實現,而數據斷點只能由硬件斷點方式實現。

調試環境提供“系統級調試”和“分區級調試”兩種調試方式。“系統級調試”在斷點或異常的處理過程中會使得整個系統暫停,等待用戶的下一步命令,其調試的對象是整個目標機系統;“分區級調試”在斷點或異常的處理過程中,只停止被調試的分區,其余分區照常運行,被調試的對象是用戶指定的分區。

2.1.3 控制臺

控制臺向開發者提供命令行操作的功能,包括“宿主機控制臺”和“目標機控制臺”。其中“宿主機控制臺”提供一個菜單可以直接啟動宿主機開發環境提供的命令行窗口,“目標機控制臺”接收開發者在控制臺輸入的命令,使用GDB調試器將命令發送給目標機并反饋結果。

2.2 交叉調試流程

與其它平臺的交叉調試流程類似[11],我們的交叉調試工具在進行調試時,大致分為三個步驟。

第一步,宿主機與目標機之間的連接,初始化二者的交叉調試環境,包括啟動宿主機端的遠程調試器和目標機端的代理服務器等操作。

第二步,“調試環境”組件利用“目標機管理”組件,發送一系列內存讀寫的指令,將需要運行的程序鏡像下載到目標機的內存上。并且根據用戶在調試頁面的操作,將斷點信息傳輸到目標機,在適當位置設置斷點,方便用戶進行遠程調試。

第三步,開始運行程序,在遇到用戶設置的斷點之前,程序將正常執行。當程序運行遇到斷點時,程序的控制權將從目標機處理器轉移到目標機的代理服務器上,而此時代理服務器將通過“目標機管理”組件向宿主機報告遇到斷點,并發送斷點的上下文信息,方便宿主機上的用戶判斷下一步的操作,此時目標機服務器將一直等待宿主機的回復,不會有下一步操作。宿主機在得知目標機運行遇到斷點之后,便可以如本機調試一樣,查看和修改斷點時刻的寄存器信息、內存信息等上下文信息。

2.3 應用實例

建目標機連接時,由于目標機使用的處理器為國產龍芯處理器,其體系結構為mips,因此設置體系結構為mips,連接類型為UDP,在連接參數中有目標機服務器的調試端口IP地址,設置超時時間為5000ms。若發生連接超時,可以重啟IDE再嘗試連接。連接頁面如圖3所示。

圖3 連接目標機

右鍵項目名,選擇調試,等待一段時間后,選擇分區加載。若遇到分區映像已存在,則選擇覆蓋。選擇界面如圖4所示。

圖4 選擇加載分區

在點擊加載之后,就可以進入調試狀態,在下圖中main.c中雙擊設置斷點,點擊上方工具欄的繼續按鈕,開始調試程序,程序會在斷點處暫停,查看目標機的狀態信息。調試界面如圖5所示。

圖5 調試界面

在交叉調試的過程中,會使用到多個調試按鈕,分別為繼續、暫掛、終止、斷開連接、單步跳入、單步跳過、單步返回。

3 結語

本文介紹了在國產銀河操作系統下,嵌入式軟件開發環境中的調試功能和實現技術。首先對Eclipse框架和相應的插件機制進行了說明,在此基礎上詳細描述了調試功能的相關組件及結構,對具體的調試流程進行了解釋,并且給出了在實際調試過程中的用戶界面。通過使用該嵌入式軟件開發環境,開發人員可以較為方便地在銀河麒麟操作系統上開發針對龍芯等mips架構嵌入式開發板的軟件,提高了在銀河麒麟操作系統上進行嵌入式開發的效率,豐富了國內研發的操作系統的軟件開發生態。

猜你喜歡
調試環境功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
長期鍛煉創造體內抑癌環境
一種用于自主學習的虛擬仿真環境
孕期遠離容易致畸的環境
環境
基于航拍無人機的設計與調試
電子制作(2018年12期)2018-08-01 00:47:44
FOCAS功能在機床調試中的開發與應用
關于非首都功能疏解的幾點思考
無線通信中頻線路窄帶臨界調試法及其應用
電子制作(2017年19期)2017-02-02 07:08:38
調壓柜的調試與試運行探討
主站蜘蛛池模板: 91欧美在线| 丁香五月激情图片| 亚洲无码91视频| 一级全黄毛片| 久久毛片网| 久久免费精品琪琪| 国产成人a在线观看视频| 久久亚洲日本不卡一区二区| 又污又黄又无遮挡网站| 精品在线免费播放| 十八禁美女裸体网站| 狠狠v日韩v欧美v| 成人毛片在线播放| 波多野结衣视频一区二区| 免费无码AV片在线观看国产| 极品私人尤物在线精品首页| 一级成人a做片免费| a欧美在线| 欧美一级夜夜爽www| AV片亚洲国产男人的天堂| 久久久精品无码一区二区三区| 五月婷婷欧美| 欧美精品在线免费| 国产成人精彩在线视频50| 日韩视频精品在线| 伊人久久大香线蕉影院| 国产精品一区不卡| 欧美一区二区人人喊爽| 青青青视频91在线 | 亚洲天堂精品在线| 国产视频只有无码精品| 欧美综合区自拍亚洲综合绿色 | 国产精品 欧美激情 在线播放 | 无码AV动漫| 免费日韩在线视频| 黄色片中文字幕| 亚洲综合国产一区二区三区| 亚洲一道AV无码午夜福利| 亚洲成人一区二区| 在线精品自拍| 亚洲男人的天堂网| 久久久久久尹人网香蕉| 99精品福利视频| 国产免费精彩视频| 污网站在线观看视频| 91丝袜美腿高跟国产极品老师| 在线视频97| AV不卡在线永久免费观看| 亚洲第一av网站| 国产精品极品美女自在线| 91极品美女高潮叫床在线观看| 欧美日韩国产成人高清视频| 91视频99| 91人人妻人人做人人爽男同| 久久久久久久久亚洲精品| 黄色免费在线网址| 欧美亚洲一区二区三区在线| 美女被躁出白浆视频播放| 亚洲人在线| 欧美国产在线看| 香蕉eeww99国产精选播放| 国产精品亚洲片在线va| 国产极品美女在线| 国产一区二区三区视频| 亚洲综合激情另类专区| 欧美综合激情| 最新国语自产精品视频在| 亚洲AV无码不卡无码| 国产区人妖精品人妖精品视频| 国产免费精彩视频| 毛片久久网站小视频| 亚洲v日韩v欧美在线观看| 午夜啪啪网| 久久9966精品国产免费| 2021国产精品自产拍在线| 亚洲第一成年人网站| 久久精品国产精品国产一区| 国产呦精品一区二区三区下载 | 全色黄大色大片免费久久老太| 亚洲av片在线免费观看| 亚洲免费黄色网| 在线中文字幕日韩|