亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Eclipse開源代碼的多核DSP調試系統(tǒng)集成

        2015-01-13 01:29:27朱艷林廣棟黃光紅
        關鍵詞:視圖命令調試

        朱艷,林廣棟,黃光紅

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

        Eclipse開源代碼的多核DSP調試系統(tǒng)集成

        朱艷,林廣棟,黃光紅

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

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

        DSP;Eclipse;多核調試

        引 言

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

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

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

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

        1 概 述

        圖1 多核DSP調試環(huán)境的架構圖

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

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

        多核DSP調試環(huán)境的用戶界面如圖2所示。

        圖2 多核DSP調試環(huán)境的用戶界面

        2 系統(tǒng)設計

        2.1 MI接口擴展

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

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

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

        [token]-exec-continue

        返回信息為:

        [token]^running

        本系統(tǒng)中對核0發(fā)出的繼續(xù)運行命令為:

        [token]-exec-continue -c 0

        返回信息為:

        [token]^running, core="0"

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

        [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因斷點觸發(fā)而停止運行,并顯示觸發(fā)斷點的序號及核0當前的棧頂信息。同時,為了實現(xiàn)多核同步控制運行的功能,本系統(tǒng)為多核同步調試運行增加了以下兩個命令:

        -multicore-run:多核同步運行

        -multicore-pause:多核同步暫停

        2.2 DSF架構的擴展

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

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

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

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

        圖3 IDMContext數據模型層次結構

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

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

        public String getCoreId();

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

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

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

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

        2.3 多核運行控制功能

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

        本系統(tǒng)注冊了一個新的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

        猜你喜歡
        視圖命令調試
        只聽主人的命令
        基于航拍無人機的設計與調試
        電子制作(2018年12期)2018-08-01 00:47:44
        移防命令下達后
        FOCAS功能在機床調試中的開發(fā)與應用
        5.3 視圖與投影
        視圖
        Y—20重型運輸機多視圖
        SA2型76毫米車載高炮多視圖
        無線通信中頻線路窄帶臨界調試法及其應用
        電子制作(2017年19期)2017-02-02 07:08:38
        調壓柜的調試與試運行探討
        国产三区三区三区看三区| 亚洲国产成人va在线观看天堂| 国产一极内射視颍一| 50岁退休熟女露脸高潮| 色橹橹欧美在线观看视频高清| 亚洲中文无码永久免| 国产一区二区激情对白在线| 色妞ww精品视频7777| 午夜无码片在线观看影院| 欧美在线资源| 久99久精品视频免费观看v| 中文字幕无码高清一区二区三区| 亚洲AV手机专区久久精品| 亚洲av天堂久久精品| 成人激情视频一区二区三区 | 国产精品成人黄色大片| 国产精品视频白浆免费看| 久久精品国产亚洲av四区| 国产一区二区黄色网页| 国产亚洲成人精品久久| 日本真人添下面视频免费 | 精品国产乱子伦一区二区三| 欧美xxxxx在线观看| 国产亚洲精品久久久闺蜜| 狠狠色综合7777久夜色撩人ⅰ| 久激情内射婷内射蜜桃人妖| 亚洲视频一区 | 亚洲精品国产精品国自产| 亚洲乱码日产精品bd| 久久久亚洲经典视频| 一本久久a久久精品综合| 操国产丝袜露脸在线播放| 一区二区三区视频亚洲| 久久精品国产亚洲av天 | av蓝导航精品导航| 国产激情久久久久久熟女老人| 国产黄色一级大片一区二区 | 午夜色大片在线观看| 午夜不卡久久精品无码免费| 9丨精品国产高清自在线看| 国产肥熟女视频一区二区三区 |