• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      EDSP集成開發(fā)環(huán)境設(shè)計(jì)和實(shí)現(xiàn)

      2009-12-31 00:00:00
      商場(chǎng)現(xiàn)代化 2009年21期

      [摘要] 基于嵌入式芯片的應(yīng)用開發(fā)需要一個(gè)良好的集成開發(fā)平臺(tái),本文分析了嵌入式系統(tǒng)集成開發(fā)環(huán)境基本功能,針對(duì)ADSP218x系列改進(jìn)的EDSP218x系列芯片,提出了嵌入式系統(tǒng)集成開發(fā)環(huán)境的設(shè)計(jì)思想,對(duì)指令仿真和調(diào)試器仿真做了詳細(xì)探討,并介紹了程序?qū)崿F(xiàn)方法。

      [關(guān)鍵詞] 集成開發(fā)環(huán)境(IDE) 解釋模擬編譯模擬斷點(diǎn)調(diào)試ELF

      引言

      軟件開發(fā)工具的效用已經(jīng)成為選擇一款DSP處理器時(shí)最重要的標(biāo)準(zhǔn)之一。目前商用集成開發(fā)環(huán)境大多數(shù)只支持某一系列的產(chǎn)品,若用戶對(duì)芯片進(jìn)行改進(jìn),原有開發(fā)環(huán)境就不能滿足開發(fā)需要,這給開發(fā)者造成了極大的不便。通過對(duì)嵌入式集成開發(fā)環(huán)境系統(tǒng)的研究,作者研制了一套開放的集成開發(fā)環(huán)境,可方便用戶在此平臺(tái)上進(jìn)行交叉開發(fā)。

      一、嵌入式系統(tǒng)集成開發(fā)環(huán)境簡(jiǎn)介

      L.P. Maguire在文中指出,作為一款完整的嵌入式集成開發(fā)環(huán)境(Integrated development environment,以下簡(jiǎn)稱IDE)應(yīng)包括基本工具、首選工具和可選工具。其中基本工具包括編輯器、編譯/匯編器、調(diào)試器、模擬器。首選工具包括配置管理、工程管理、仿真工具等??蛇x工具包括系統(tǒng)分析和設(shè)計(jì)、數(shù)學(xué)工具等。而目前國內(nèi)對(duì)嵌入式集成開發(fā)環(huán)境的研究起步較晚,自主產(chǎn)品較少,大多是在國外產(chǎn)品的基礎(chǔ)上進(jìn)行二次開發(fā)。作者通過對(duì)國外嵌入式集成開發(fā)環(huán)境的研究,結(jié)合EDSP218X系列芯片的特性開發(fā)了EDSP集成開發(fā)環(huán)境。

      本系統(tǒng)集代碼編輯、工程管理、編譯、調(diào)試和第三方工具集于一體,充分考慮了IDE的可擴(kuò)展性,方便用戶自由添加第三方工具。本系統(tǒng)提供了對(duì)基于Analog Device公司ADSP218x系列改進(jìn)的EDSP218X系列芯片的仿真,在此平臺(tái)下可對(duì)應(yīng)用軟件進(jìn)行實(shí)時(shí)調(diào)試并進(jìn)行交叉開發(fā)。下面?zhèn)戎亟榻B本系統(tǒng)的對(duì)EDSP218X系列芯片的硬件仿真和調(diào)試器仿真。系統(tǒng)的開發(fā)界面如圖1所示。

      二、硬件仿真

      1.DSP仿真

      DSP仿真就是通過軟件來模擬DSP硬件運(yùn)行,建立模擬運(yùn)行環(huán)境。它主要包括指令仿真、寄存器仿真等。下面介紹EDSP218X系列芯片仿真的原理和在VC6.0中的實(shí)現(xiàn)方法。

      (1)寄存器仿真

      硬件中寄存器主要用來緩存數(shù)據(jù),狀態(tài)表示等。在EDSP218x系統(tǒng)芯片中共有198個(gè)寄存器,我們用多個(gè)結(jié)構(gòu)來表示這些寄存器,以便分類。例如:

      typedef unsigned longReg;

      struct DAGReg//用此結(jié)構(gòu)表示所有數(shù)據(jù)地址發(fā)生器中寄存器

      {

      Reg I0;

      ……;

      Reg L7;

      }

      (2)指令仿真

      目前,指令仿真主要采用解釋模擬和編譯模擬兩種。解釋模擬可以清晰地表述出指令的執(zhí)行過程,簡(jiǎn)單易懂,它的時(shí)間主要開銷在取指令和解碼指令,速度較慢。編譯模擬效率高,它的時(shí)間主要開銷在編譯和計(jì)算。根據(jù)實(shí)驗(yàn)比較,被模擬程序運(yùn)行一次,解釋模擬的性能比編譯模擬要優(yōu)。集成開發(fā)環(huán)境中我們對(duì)EDSP218x指令集用解釋模擬,解釋模擬的流程如圖2所示。

      EDSP218x系列芯片指令分為七大類,每條指令長(zhǎng)度為3字節(jié)。我們通過指令模擬器來模擬每一條指令的運(yùn)行及運(yùn)行結(jié)果的反饋。首先我們用指令掩碼來判斷指令類型,然后調(diào)用相應(yīng)指令的模擬函數(shù)完成指令運(yùn)行。掩碼數(shù)據(jù)結(jié)構(gòu)定義如下:

      typedef unsigned long OPCODE;

      typedef struct

      {

      OPCODEInsMask;//掩碼

      OPCODEInsVal;//指令與掩碼的操作結(jié)果

      void (*detype)(OPCODE x);//*detype為該類指令模擬函數(shù)指針,x為輸入的指令代碼

      } InstuctionType;

      例如:指令7800B3通過指令掩碼可判斷為帶寄存器寫的移動(dòng)指令,其匯編語言為:dm(I4,M7) = MR0,含義為將寄存器MR0中的值送到數(shù)據(jù)存儲(chǔ)器I4+M7地址處。我們用下面的函數(shù)來模擬其運(yùn)行:

      MovWithDMWrite()

      {

      Unsigned int add;

      add = I4 + M7;

      WriteDataMemory(add, MR0);//寫數(shù)據(jù)存儲(chǔ)器

      UpdateRegister();//更新寄存器數(shù)據(jù)顯示

      }

      2.存儲(chǔ)器仿真

      硬件中存儲(chǔ)器主要用來存儲(chǔ)代碼和數(shù)據(jù)。在EDSP218x中分為程序存儲(chǔ)區(qū)、數(shù)據(jù)存儲(chǔ)區(qū)、字節(jié)存儲(chǔ)區(qū)和I/O存儲(chǔ)區(qū)。存儲(chǔ)器空間一般比較大,如果在程序中動(dòng)態(tài)申請(qǐng)開銷很大。所以我們通過定義固定數(shù)組來實(shí)現(xiàn)對(duì)存儲(chǔ)器的仿真。源文件經(jīng)過編譯生成可執(zhí)行文件后,我們通過一組讀寫函數(shù)將文件中內(nèi)容依次拷貝到相應(yīng)的仿真存儲(chǔ)器中。對(duì)存儲(chǔ)器我們也編寫了配套的根據(jù)地址進(jìn)行讀寫函數(shù)。

      三、調(diào)試器仿真

      調(diào)試器是集成開發(fā)環(huán)境最基本的功能,也是最難仿真實(shí)現(xiàn)的。調(diào)試器仿真就是要通過軟件來模擬硬件對(duì)被調(diào)試軟件的執(zhí)行流程的控制、執(zhí)行狀態(tài)的獲取、代碼及變量的控制等來幫助軟件開發(fā)人員發(fā)現(xiàn)軟件問題。我們建立了一種虛擬機(jī)機(jī)制,專門用來模擬硬件的運(yùn)行和控制。虛擬機(jī)主要完成斷點(diǎn)控制、調(diào)試控制、執(zhí)行控制等主要功能。

      1.斷點(diǎn)控制

      斷點(diǎn)是程序調(diào)試的基本手段,通過設(shè)置斷點(diǎn)可以控制程序執(zhí)行,獲得當(dāng)前執(zhí)行狀態(tài)。在VC6.0中我們用如下結(jié)構(gòu)完成斷點(diǎn)設(shè)計(jì),并用一個(gè)CList來管理斷點(diǎn)。

      struct SBkp{

      BKP_STATEm_eState;//斷點(diǎn)狀態(tài)

      intm_iAddr;//斷點(diǎn)地址

      intm_iFileId;//斷點(diǎn)對(duì)應(yīng)文件ID

      intm_iLine;//斷點(diǎn)對(duì)應(yīng)文件行

      };

      2.調(diào)試控制

      程序源碼一般對(duì)應(yīng)有多條機(jī)器指令,執(zhí)行一條源語句需要多條機(jī)器指令的單步執(zhí)行。通常調(diào)試控制通常分為單步進(jìn)入(StepInto)、單步跳過(StepOver)、單步跳出(StepOut)、運(yùn)行到光標(biāo)(RunToCursor)這幾種方式。調(diào)試控制關(guān)鍵就是要獲得下一條程序或者指令的地址,通過對(duì)指令的匯編找到指令可能的出口位置,然后在出口位置設(shè)置臨時(shí)斷點(diǎn),以達(dá)到控制程序運(yùn)行的目的。

      在EDSP218x指令中,程序控制指令分為跳轉(zhuǎn)、調(diào)用、返回、循環(huán)和空指令。對(duì)指令進(jìn)行反匯編即可獲得出口地址。當(dāng)程序全速運(yùn)行時(shí),調(diào)試控制程序每次都執(zhí)行PC寄存器中值在地址處指令,在執(zhí)行此指令前查看這條指令是否已經(jīng)設(shè)置斷點(diǎn),如沒有則執(zhí)行此指令,否則暫停當(dāng)前指令運(yùn)行。

      3.變量和表達(dá)式

      變量和表達(dá)式的監(jiān)測(cè)關(guān)鍵在于找到變量名和數(shù)據(jù)存儲(chǔ)器地址對(duì)應(yīng)的關(guān)系。通過對(duì)EDSP218x可執(zhí)行文件的分析,可以從ELF文件調(diào)試信息中的.symtab和.strtab節(jié)即可知此變量在存儲(chǔ)器中的位置。在調(diào)試器仿真程序中我們用映射類CMap 來完成變量和地址的對(duì)應(yīng)。

      四、結(jié)束語

      本文介紹的嵌入式集成開發(fā)環(huán)境系統(tǒng)已經(jīng)實(shí)現(xiàn)針對(duì)EDSP218x芯片的仿真,在此平臺(tái)上可以針對(duì)芯片進(jìn)行應(yīng)用開發(fā)和調(diào)試,系統(tǒng)已在北京某公司進(jìn)行實(shí)際應(yīng)用,效果良好。文中提到的硬件仿真和調(diào)試器仿真方法對(duì)其它芯片的仿真和嵌入式集成開發(fā)環(huán)境的開發(fā)也有一定的的借鑒作用。

      參考文獻(xiàn):

      [1]L.Vereen. Software tools for embedded systems development[J].Embedded Systems Programming, 1996,9 (10) :19~57

      [2]L.P. Maguire. T.M. McGinnity. L.J. McDaid. Issues in the Development of an Integrated Environment for Embedded System Design[J]. Microprocessors and Microsystems, 1999,23(4):191~197

      [3]Analog Devices, Inc. ADSP-218x DSP Instruction Set Reference[Z]. US:2001

      [4]Tool Interface Standards (TIS) Portable Formats Specification[Z], Version 1.1 Executable and Linkable Format (ELF)

      [5]UNIX International Programming Languages SIG DWARF Debugging Information Format [Z]Revision: 2.0.0 (July 27, 1993)

      [6]姜兆義戴金海:嵌入式系統(tǒng)集成開發(fā)環(huán)境研究[J].電腦與信息技術(shù),2004.6.10-13,22

      [7]CHRISTOPHER MILLS. Compiled Instruction Set Simulation. SOFTWARE PRACTICE AND EXPERIENCE, 1991.8. 21 (8):877~889

      永吉县| 阳信县| 犍为县| 富民县| 周至县| 吉安市| 利辛县| 曲水县| 新巴尔虎右旗| 长垣县| 温泉县| 吴忠市| 浮梁县| 信丰县| 武强县| 开鲁县| 满洲里市| 安新县| 辽源市| 石泉县| 临泽县| 宾川县| 洛隆县| 云南省| 阜新市| 望江县| 敦化市| 嘉义市| 五华县| 长春市| 原平市| 安多县| 偏关县| 丽江市| 东平县| 娱乐| 昆明市| 报价| 阜新市| 阜阳市| 凤冈县|