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

Eclipse開源代碼的多核DSP調試系統集成

2015-01-13 01:29:27朱艷林廣棟黃光紅
單片機與嵌入式系統應用 2015年9期
關鍵詞:調試環境功能

朱艷,林廣棟,黃光紅

(中國電子科技集團第38研究所,合肥 230088)

Eclipse開源代碼的多核DSP調試系統集成

朱艷,林廣棟,黃光紅

(中國電子科技集團第38研究所,合肥 230088)

提出了一種集成多核DSP調試系統的應用軟件開發環境。該開發環境基于Eclipse的開源代碼,針對多核DSP的多核并行特性,對CDT/DSF框架進行了改造和擴展,為面向多核DSP應用的開發人員提供了一個可靠、快速、兼容單核及多核模式的軟件開發環境,提高了多核并行開發的速度和質量。

DSP;Eclipse;多核調試

引 言

DSP是一種用于數字信號處理的專用處理器。在電子技術很多領域,例如雷達、聲納、語音通信、數字通信等,正廣泛使用DSP處理器搭建的系統來處理日益龐大的數字信息。為了解決計算能力需求與功耗增加之間的矛盾,DSP的設計正在向多核、高性能方向發展[1]。 多核DSP以較低的功耗提供了更強的計算處理能力,同時能夠簡化硬件電路板的設計復雜度。

多核DSP的應用給開發者帶來了新的挑戰,不僅需要新的編程模型和代碼框架,還需要新的工具環境支持多核DSP并行編程和調試。

Eclipse及C/C++ Toolkit(CDT)是目前在嵌入式領域廣泛使用的集成開發環境[2],集成了編譯、工程管理、代碼分析索引、源碼調試等多種開發功能。調試服務框架(Debugging Service Framework,DSF)重構了CDT中的調試功能實現,為嵌入式應用的調試提供了更加快速靈活的界面。CDT/DSF利用MI文本接口,采用一問一答的方式與調試器進行進程間通信,但是MI接口不支持多核,開源的DSF代碼并不支持多核調試。為了實現支持多核調試環境,不僅需要重新設計MI接口,而且要對DSF框架進行擴展。調試后端,需要一個支持多核調試的調試器。

本文提出一個面向多核DSP的調試開發環境,集成了多核調試工具MCCD[3],擴展Eclipse的C語言開發插件CDT,并針對多核調試的需求增加了相應功能。

1 概 述

圖1 多核DSP調試環境的架構圖

多核DSP調試環境的架構如圖1所示,多核DSP調試環境集成了多核DSP主機調試器MCCD,實現具體的調試功能。調試環境與MCCD之間通過文本格式的進程間通信管道傳輸調試命令與調試返回信息,該調試信息遵循MI接口格式,但針對多核DSP的特點擴展了調試命令及信息。當使用軟件模擬器(Simulator)調試時,主機調試器通過socket與模擬器之間進行通信,當調試目標是硬件電路板時,主機調試器通過以太網接口與調試鏈接服務軟件交換調試報文,調試鏈接服務軟件通過JTAG控制多核DSP芯片進行調試工作。

在多核DSP調試環境中,用戶可以為每個核配置相應的可執行加載文件并啟動調試,調試視圖中會顯示每個核的運行狀況及堆棧信息。當用戶在調試視圖中選擇任意核或其下面的條目時,由于調試視圖為整個調試透視圖提供調試上下文,寄存器視圖、變量視圖、反匯編視圖就會根據當前上下文反映當前選中核的信息;運行、暫停、單步跳入/跳出/跳過按鈕也會根據選中的上下文對當前選中核進行控制操作。根據多核DSP的特點,調試環境提供了組運行、組暫停等同步調試功能,并提供核心組的配置及選擇功能。

多核DSP調試環境的用戶界面如圖2所示。

圖2 多核DSP調試環境的用戶界面

2 系統設計

2.1 MI接口擴展

MI接口原本是GDB的一種用戶接口,稱為機器解釋(Machine Interpretation,MI)[4],是一種基于文本行、面向機器的文本接口,尤其適用于調試器作為一個較大系統的一部分而存在的應用。Eclipse社區目前提供的C語言開發環境就是使用MI接口集成GDB,由于GDB支持目標機的多樣性,該開發環境已廣泛使用于多種嵌入式開發項目中,包括Intel、ARM、PowerPC等目標環境。

MI命令的基本格式如下:

[token] "-" operation (" " option)* [ "- -"] (" " parameter)*

其中,token為命令序號,必須是一個整數,當一個調試命令運行結束后,返回的信息中也有這個數字;operation是調試命令;option是調試命令選項,有些調試命令可能存在一些可選開關,這些開關必須由“-”(橫線)開始;parameter是調試命令的參數。option序列與parameter序列之間必須由雙橫線“- -”隔開。

MI的輸出信息格式如下:

[token] "^" result-class ("," result)* nl

其中,token為相應命令輸入時指定的整數;result-class包括done、running、connected、error、exit等,必須以"^"開頭;result以Variable =value的格式顯示結果,Variable 為變量名,value為變量值,分為const、tuple、list三種格式,其中const為一個C字符串,tuple為大括號括起來的result集合,相當于一個結構體;list為中括號括起來的value或者result集合,相當于一個數組。

多核DSP調試集成了自主研發的多核DSP調試軟件MCCD,沿用MI接口的命令和信息格式,并針對多核DSP的特性對MI接口進行了擴展。對大部分MI接口,在命令中增加-c選項,指定調試操作的對象核,并在返回信息中返回相應的核號。

例如,GDB/MI中的繼續運行命令為:

[token]-exec-continue

返回信息為:

[token]^running

本系統中對核0發出的繼續運行命令為:

[token]-exec-continue -c 0

返回信息為:

[token]^running, core="0"

當核0遇到特定事件(如斷點觸發)發生狀態改變時,MCCD向集成開發環境返回:

[token]*stopped,reason="breakpoint-hit",core="0",bkptno="2",thread-id="1",frame={addr="0x00401331",func="main",args=[],file="main.c",fullname="C:/main.c",line="7"}

指示核0因斷點觸發而停止運行,并顯示觸發斷點的序號及核0當前的棧頂信息。同時,為了實現多核同步控制運行的功能,本系統為多核同步調試運行增加了以下兩個命令:

-multicore-run:多核同步運行

-multicore-pause:多核同步暫停

2.2 DSF架構的擴展

調試服務框架(Debugger Services Framework,DSF)[5]是Eclipse提供的一個新的應用程序接口,用于在Eclipse中集成外部調試器,代替傳統的標準調試接口CDI。DSF不僅能夠幫助開發者更加靈活地配置調試界面,還能夠達到更高的調試性能,特別適合速度較慢或遠程調試的目標機。

DSF是面向服務的框架,基于OSGi(Open Service Gateway Initiative)規范。OSGi是一個基于Java的軟件平臺,支持模塊化、即插即用的動態服務及可擴展性[6],Eclipse的運行框架Equinox就是OSGi的一種實現。調試相關的各種功能以服務的形式嵌入集成開發環境,包括調試后臺服務、運行控制服務、斷點管理服務、寄存器管理服務等,各個服務通過DSF接口注冊到服務注冊表,并由調試會話類DsfSession統一管理同一個調試會話中的所有服務及服務之間的通信。

DSF調試框架中的數據模型由IDMContext對象的層次結構構成。IDMContext是有層次結構的數據模型結構,每個IDMContext節點可以有多個父節點,具有可適配、輕量級、線程安全的特點。每個節點都可以通過getParents()方法得到所有的父節點,工具類IDMContext提供很多靜態方法為IDMContext節點在樹形結構中搜索。

C語言調試的IDMContext數據模型層次結構如圖3所示。圖中所有的節點繼承IDMContext接口,每根連線的上級為父節點,下級為子節點。例如,變量上下文IVariableDMContext的父節點是棧幀上下文IFrameDMContext,而IFrameDMContext的父節點是執行線程上下文IExecutionDMContext,IExecutionDMContext的父節點是調試目標節點IContainerDMContext,IContainerDMContext的父節點是調試過程上下文IProcessDMContext,IProcessDMContext的父節點是命令控制上下文ICommandControlDMContext。這樣,由變量上下文向上追溯,就可以確定該變量位于哪個調試目標的哪個線程的哪個棧幀,并且可以知道需要在哪個調試會話中查詢。

圖3 IDMContext數據模型層次結構

很明顯,要在這種層次結構中帶入核號信息,最合適的地方就是調試目標節點IContainerDMContext,因為所有調試相關數據的上下文都可以追溯到它,而它上部的節點都是與調試器進程相關的。本系統僅使用一個調試器進程實例調試所有的核心,因此ICommandControlDMContext和IProcessDMContext都只有一個實例。

本系統擴展了IContainerDMContext接口,構造IECSContainerDMContext接口,加上了如下方法:

public String getCoreId();

該接口的實現只需要返回核號即可。圖3中IContainerDMContext以下的節點全部以IECSContainerDMContext為父節點,這樣就可以確定每個調試上下文具體在哪個核。

例如,要在某個指定核上對某變量上下文IVariableDMContext求值,只需要調用:

IECSContainerDMContext containerdmc = DMContexts.getAncestorOfType(context, IECSContainerDMContext.class);String coreId = containerdmc.getCoreId();

即可以得到核號。把這個核號用-c選項帶入MI命令,就可以正確地在指定核上求變量的值。

2.3 多核運行控制功能

多核運行控制主要包括對多核運行組配置的保存及針對指定組發送-multicore-run及-multicore-pause命令,還負責單核與單核調試模式的切換、調試對象核心組的選擇。

本系統注冊了一個新的DSF服務:多核運行控制服務IECSMultiRunControl。該服務主要提供以下功能接口:

① 多核調試模式是否被啟動;

② 選擇當前多核調試組;

③ 增加多核調試組配置,包括組名、組中所有的核號序列;

④ 判斷能否運行當前多核組;

⑤ 判斷能否暫停當前多核組;

⑥ 運行當前多核調試組中所有的核;

⑦ 暫停當前多核調試組中所有的核。

同時,構造調試運行控制服務MIRunControl的子類ECSRunControl,覆蓋了以下方法:

resume(IExecutionDMCon-

text,RequestMonitor);

canResume(IExecutionDMContext,DataRequestMonitor);

canSuspend(IExecutionDMContext,DataRequestMonitor);

suspend(IExecutionDMContext,RequestMonitor);

Integration of Multi-core DSP Debugging System Based on Eclipse

Zhu Yan,Lin Guangdong,Huang Guanghong

(CETC No.38 Research Institute,Hefei 230088,China)

An application software development environment integrated multi-core DSP debug system is proposed in the paper.The environment is designed based on open source Eclipse,and modifies and extends CDT/DSF framework aiming at the parallel characteristic of multi-core.The software provides a stable,speedy development environment which supports both single-core and multi-core debugging,and helps the developers improve their efficiency and quality in the development process.

DSP;Eclipse;multi-core debugging

TP314

A

猜你喜歡
調試環境功能
也談詩的“功能”
中華詩詞(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
調壓柜的調試與試運行探討
主站蜘蛛池模板: 亚洲最大在线观看| aa级毛片毛片免费观看久| 99久久精品免费视频| 国产亚洲成AⅤ人片在线观看| 久久精品免费看一| 色偷偷av男人的天堂不卡| 好吊色妇女免费视频免费| 啪啪啪亚洲无码| Aⅴ无码专区在线观看| 午夜啪啪网| 亚洲人精品亚洲人成在线| 扒开粉嫩的小缝隙喷白浆视频| 男人天堂亚洲天堂| av在线5g无码天天| 久久中文字幕av不卡一区二区| 亚洲欧洲日产国产无码AV| 国产在线视频欧美亚综合| 亚洲精品欧美重口| 久久天天躁狠狠躁夜夜躁| 国产人人乐人人爱| 中文字幕不卡免费高清视频| 久久网综合| 久久亚洲精少妇毛片午夜无码| 欧美中文字幕一区| 日韩在线第三页| 58av国产精品| 黄色网页在线播放| 国产福利小视频在线播放观看| 国产乱人伦偷精品视频AAA| 欧美无遮挡国产欧美另类| 亚洲精品国产综合99久久夜夜嗨| 2021国产在线视频| 欧美日韩在线亚洲国产人| 国产一级精品毛片基地| 日本在线视频免费| 中国成人在线视频| 国产成人精品第一区二区| 天堂va亚洲va欧美va国产| 中日韩一区二区三区中文免费视频| 孕妇高潮太爽了在线观看免费| 亚洲精品黄| 亚洲一区精品视频在线| 亚洲成网站| 91小视频在线| 亚洲永久色| 18禁不卡免费网站| 夜色爽爽影院18禁妓女影院| 色综合a怡红院怡红院首页| 夜精品a一区二区三区| 乱人伦99久久| 高清国产va日韩亚洲免费午夜电影| 男人的天堂久久精品激情| 欧美一级在线| 日本一区二区三区精品AⅤ| 57pao国产成视频免费播放| 一级毛片免费观看不卡视频| 成人午夜免费观看| 国产精品林美惠子在线观看| 欧美一级黄片一区2区| 911亚洲精品| 国产一区二区三区在线观看视频 | 久草青青在线视频| 一级黄色网站在线免费看| 色悠久久久久久久综合网伊人| 日本午夜精品一本在线观看 | 免费无码AV片在线观看国产| 欧美日韩一区二区在线免费观看| 国产免费观看av大片的网站| 国产一区二区三区在线观看免费| 在线观看国产黄色| 中文字幕永久视频| 青青草久久伊人| 精品久久久久久久久久久| 精品夜恋影院亚洲欧洲| 午夜影院a级片| 久久久久无码精品| 青青国产视频| 伊大人香蕉久久网欧美| 国产精品人人做人人爽人人添| 久久综合亚洲鲁鲁九月天| 欧美中文字幕在线视频| 国产正在播放|