1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

    <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
    <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
  2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
    現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>雙片ADSP-21160系統(tǒng)的程序加載設(shè)計(jì)

    雙片ADSP-21160系統(tǒng)的程序加載設(shè)計(jì)

    時(shí)間:2023-02-21 00:11:54 電子通信論文 我要投稿
    • 相關(guān)推薦

    雙片ADSP-21160系統(tǒng)的程序加載設(shè)計(jì)

    本文檔詳細(xì)說明了雙片ADSP-21160系統(tǒng)的加載,以及如何在VISUAL DSP++集成開發(fā)環(huán)境中通過DSP將引導(dǎo)程序上載到FLASH中。SHARC系列是美國模擬器件公司(Analog Devices)的重要芯片系列之一。該系列產(chǎn)品具有很強(qiáng)的數(shù)字信號(hào)處理能力,多片SHARC芯片可以構(gòu)成更為處理能力強(qiáng)大的系統(tǒng),廣泛應(yīng)用于通信,雷達(dá)等領(lǐng)域。SHARC系列芯片族包含了ADSP-21060/21061/21601/21065L,以及最新的21160/21161系列。它們共同的特點(diǎn)是不但有強(qiáng)大的處理能力,而且有豐富的接口資源,十分適合多片級(jí)聯(lián)構(gòu)成功能更復(fù)雜的系統(tǒng)。

        在多片系統(tǒng)中,如何對(duì)多片SHARC DSP進(jìn)行程序加載是一個(gè)比較實(shí)際的問題,本文就是從硬件構(gòu)架和軟件流程上對(duì)雙片ADSP-21160的SHARC系統(tǒng)的加載問題進(jìn)行分析的。

    1. 雙片ADSP-21160系統(tǒng)的硬件構(gòu)架

    1.1 雙片ADSP-21160的連接    以AD21160N為例。

        兩片SHARC分別為DSP1和DSP2,相應(yīng)的ID2~0管腳置為001和010。其中ID為001的是主片,ID為010的為從片。

        如果系統(tǒng)采用非主機(jī)引導(dǎo)模式,每片的/HBG,/HBR分別置為無效狀態(tài)(拉高)。

        如果加載采用EPROM引導(dǎo),每片SHARC的/BMS做線或后和EPROM的/CE相連。并且每片的BR1,BR2對(duì)應(yīng)相連,其余BRx置為無效(拉高)。

        ACK信號(hào)決定了總線權(quán)的轉(zhuǎn)移,應(yīng)該把ACK強(qiáng)制拉高。當(dāng)ID = 000(單片系統(tǒng)),或者ID = 001(多片系統(tǒng)的主片)的時(shí)候,ACK會(huì)自動(dòng)內(nèi)部拉高。為了保險(xiǎn)起見,可以把主片和從片的ACK都在外部強(qiáng)制拉高。否則,會(huì)出現(xiàn)總線權(quán)不能交給從片的現(xiàn)象。

        地址總線和數(shù)據(jù)總線對(duì)應(yīng)相連,并和EPROM的地址線,數(shù)據(jù)線相連。

        當(dāng)雙片系統(tǒng)加電后,主片ADSP-21160和從片ADSP-21160都是從EPROM中讀出256個(gè)字節(jié)的初始程序段。這256個(gè)字節(jié)的程序段包含了加載初始化信息,在此段的最后有一張?zhí)D(zhuǎn)表,顯示了不同ID的程序?qū)?yīng)的不同的存儲(chǔ)地址。SHARC通過讀自己的系統(tǒng)寄存器得到自己的ID,然后取出自己所要加載的程序代碼的偏移地址。

        根據(jù)SHARC的總線制裁機(jī)制,ID號(hào)低的SHARC有較高的優(yōu)先權(quán),所以ID=001的主片先加載。當(dāng)?shù)谝黄虞d完畢后,通過BR1通知第二片可以開始加載,總線權(quán)轉(zhuǎn)移到ID=010的SHARC。當(dāng)?shù)诙虞d完畢后,通過BR2通知系統(tǒng),然后此雙片系統(tǒng)開始運(yùn)行程序。
      
    1.2 ADSP-21160與FLASH的連接

        FLASH的CE,OE,WE分別與AD21160的BMS,RD,WR相連,其中BMS表示片選信號(hào),WR為寫信號(hào),RD為讀信號(hào)。另外FLASH的地址線和數(shù)據(jù)線也分別與DSP連接好。

        如果把AD21160的MS0~2與FLASH的片選線相連,就是把FLASH成了AD21160的外部擴(kuò)展存儲(chǔ)區(qū)。這樣會(huì)帶來方便,首先,可以在VisualDSP++ for SHARC中直接讀FLASH里的數(shù)據(jù),無需編程讀出;其次,可以用直接讀寫的辦法燒寫FLASH,還可以用軟件控制插入的等待時(shí)間。

        如果僅用BMS與FLASH相連,那么就只能用DMA的方式進(jìn)行FLASH的讀寫操作。

    1.3 燒寫FLASH的方式

        當(dāng)使用BMS片選FLASH的時(shí)候,F(xiàn)LASH作為AD21160的字節(jié)存儲(chǔ)空間,AD21160只能通過DMA方式訪問FLASH。

        完成一次DMA傳送需對(duì)4個(gè)存儲(chǔ)器映像寄存器進(jìn)行設(shè)置。注意,寫FLASH只能使用DMA10。
    具體如下:


        1.設(shè)置BSO,使BMS強(qiáng)制有效,并打開DMA10的中斷使能;

          USTAT1 = DM(SYSCON);
        BIT SET USTAT1 BSO;
        DM(SYSCON) = USTAT1;

          BIT SET MODE1 IRPTEN;
          BIT SET IMASK EP1I;
          BIT SET IMASK EP0I;

        2.注意對(duì)FLASH的寫是字節(jié)編程,所以要把數(shù)據(jù)文件轉(zhuǎn)化為8bit的字節(jié)形式。每次DMA只能送出一個(gè)字節(jié)。

        3.因?yàn)锽MS片選FLASH,所以不能對(duì)FLASH的讀寫進(jìn)行插入等待狀態(tài)的指令。變通的辦法是,DMA次數(shù)寄存器設(shè)為3或3以上的整數(shù),即對(duì)同一個(gè)地址連續(xù)多次寫入同一個(gè)字節(jié),等效于插入等待狀態(tài),拉寬寫使能信號(hào)的寬度。

        4.有關(guān)FLASH讀寫時(shí)序,請(qǐng)參看所使用的FLASH的datasheet,并按照其時(shí)序和控制字要求,使用SHARC的匯編指令編寫FLASH的燒寫程序。該程序可以通過仿真器在SHARC芯片上運(yùn)行,實(shí)現(xiàn)把.dat文件燒寫到FLASH中。

    2. 雙片系統(tǒng)的LDF文件

        LDF文件是對(duì)系統(tǒng)的存儲(chǔ)資源進(jìn)行說明和定義的文件,雙片系統(tǒng)的LDF與單片的LDF有所不同。為了更好的進(jìn)行雙片之間的通信,其LDF文件一般定義如下:

    ARCHITECTURE(ADSP-21160)   &nbs

    p;      21160系統(tǒng)
    SEARCH_DIR( $ADI_DSP\211xx\lib )  文件路徑
    $LIBRARIES = lib160.dlb;
    COMMAND_LINE_OBJECTS.
    $OBJECTS = $COMMAND_LINE_OBJECTS;
    MEMORY                             //片內(nèi)存儲(chǔ)區(qū)定義
    { mem_rth  { TYPE(PM RAM) START(0x00040000) END(0x000400ff) WIDTH(48) }                                //程序內(nèi)存,中斷向量表段
     mem_pmco { TYPE(PM RAM) START(0x00040100) END(0x000491ff) WIDTH(48) }                               //程序內(nèi)存,代碼段
     mem_pmda { TYPE(PM RAM) START(0x0004db00) END(0x0004efff) WIDTH(32) }                                //程序內(nèi)存,數(shù)據(jù)段
     mem_dmda { TYPE(DM RAM) START(0x00050000) END(0x00057fff) WIDTH(32) }                                //數(shù)據(jù)內(nèi)存,數(shù)據(jù)段
     mem_dmex { TYPE(DM RAM) START(0x00800000) END(0x00800fff) WIDTH(32) }                                //數(shù)據(jù)存儲(chǔ)區(qū),片外數(shù)據(jù)段
    }
      //以下是對(duì)多片(ID1 和ID2)映射空間說明

    MPMEMORY

    { ID1 { START(0x00100000) }              //第一片映射到0x00100000
     ID2 { START(0x00200000) }              //第一片映射到0x00200000
    }

    下是對(duì)共享的外部存儲(chǔ)區(qū)的聲明,比如外掛的SRAM等器件的存儲(chǔ)空間
    { OUTPUT(shared.sm)
     SECTIONS
     { dxe_dmex
      { INPUT_SECTIONS( shared.doj(sram_da) )
      } >mem_dmex
     }
    }
    PROCESSOR ID1  //處理器 ID1 的段定義.
    {   LINK_AGAINST(ID2.dxe)
        OUTPUT(ID1.dxe)
        SECTIONS
        {  dxe_rth
      { INPUT_SECTIONS( ID1.doj(seg_rth) $LIBRARIES(seg_rth))
      } >mem_rth
      dxe_pmco
      { INPUT_SECTIONS( ID1.doj(s

    eg_pmco) $LIBRARIES(seg_pmco))
      } >mem_pmco
      dxe_pmda
      { INPUT_SECTIONS( ID1.doj(seg_pmda) $LIBRARIES(seg_pmda))
      } >mem_pmda
      dxe_dmda
      { INPUT_SECTIONS( ID1.doj(seg_dmda) $LIBRARIES(seg_dmda))
      } >mem_dmda
     }
    }

    PROCESSOR ID2  //處理器 ID2 的段定義
    {
     LINK_AGAINST(ID1.dxe)
        OUTPUT(ID2.dxe)
         SECTIONS
        { dxe_rth
      {INPUT_SECTIONS( ID2.doj(seg_rth) $LIBRARIES(seg_rth))
      } >mem_rth
      dxe_pmco
      { INPUT_SECTIONS( ID2.doj(seg_pmco) $LIBRARIES(seg_pmco))
      } >mem_pmco
      dxe_pmda
      {INPUT_SECTIONS( ID2.doj(seg_pmda) $LIBRARIES(seg_pmda))
      } >mem_pmda
      dxe_dmda
      {INPUT_SECTIONS( ID2.doj(seg_dmda) $LIBRARIES(seg_dmda))
      } >mem_dmda
     }
    }

        通過以上的定義,就實(shí)現(xiàn)了在一個(gè)LDF文件中聲明了兩片AD21160的存儲(chǔ)空間,以及多片存儲(chǔ)區(qū)映射(MMS),和共享片外存儲(chǔ)區(qū)。

    3. 燒寫雙片SHARC的流程實(shí)例

        新建一個(gè)工程,采用以上的LDF文件聲明。
        然后編寫兩個(gè).asm文件:ID1.asm,ID2.asm。
        這兩個(gè).asm文件都有獨(dú)立的中斷向量表,可以獨(dú)立執(zhí)行各自的程序。

        例如,可以在ID1.asm中讓FLAG0和FLAG1輸出反相的方波,在ID2.asm中讓FLAG2和FLAG3輸出另一個(gè)頻率的反相的方波。

        編譯通過后,可以找到新生成的可執(zhí)行文件ID1.DXE,ID2.DXE。

        在VISUAL DSP++集成環(huán)境中,選擇工程屬性(Project Option),改變?nèi)缦拢?br />

    1.如上圖,把Type由DSP executable file改為L(zhǎng)oader file;

        2.如上圖,選定Multiprocessor,就可以在被激活的選擇框中選擇要使用的.DXE文件。在1處,選擇ID1.DXE;在2處,選擇ID2DXE。這意味著將對(duì)第一片加載ID1.DXE,對(duì)第二片加載ID2.DXE。Kernel file選擇默認(rèn)的160_prom.dxe,該文件是由AD提供的加載核文件。在Output file中設(shè)定輸出文件名(在這里是Two_SHARC.ldr);選定ASCII格式,將產(chǎn)生16bit的數(shù)據(jù)文件;boot type選定eprom,這將產(chǎn)生適合從eprom中加載的數(shù)據(jù)文件。

        3.一切完成后,進(jìn)行一次編譯。就可以在DEBUG文件夾里找到生成的Two_SHARC.ldr。

        4.接好仿真器后,打開FLASH燒寫程序,把要燒結(jié)的文件名添加到程序中。運(yùn)行FLASH燒結(jié)程序,就把兩片加載程序燒到FLASH里了。

        5.關(guān)閉VisualDSP,拔掉仿真器,重新啟動(dòng)目標(biāo)板,按下RESET,通過示波器觀測(cè)第一片DSP的FLAG0和FLAG1,和第二片DSP的FLAG2和FLAG3,檢查是否有對(duì)應(yīng)的反相方波輸出。如果有,說明雙片AD21160加載成功。

    4. 結(jié) 束 語

        美國AD公司的SHARC系列DSP的多片級(jí)連能力是其特點(diǎn)之一,從本文介紹的兩片系統(tǒng)加載方案可以推知多片SHARC系列DSP芯片系統(tǒng)的加載也是類似的。多片系統(tǒng)同樣也要注意系統(tǒng)的硬件架構(gòu),包含多片DSP芯片之間的連接方式,總線仲裁機(jī)制,以及與FLASH MEMORY之間的連接。軟件上對(duì).LDF的設(shè)置是關(guān)鍵,它決定了多片DSP之間的相互訪問的存儲(chǔ)分區(qū)。多片SHARC系統(tǒng)會(huì)大大發(fā)揮該系列芯片強(qiáng)大的浮點(diǎn)處理能力,在通信,雷達(dá)等方面有重大應(yīng)用。

    作者聯(lián)系:hanwei2004@sohu.com


    【雙片ADSP-21160系統(tǒng)的程序加載設(shè)計(jì)】相關(guān)文章:

    利用Flash實(shí)現(xiàn)DSP對(duì)多個(gè)程序有選擇的加載08-06

    一種基于CAN總線的DSP程序加載技術(shù)08-06

    嵌入式Linux系統(tǒng)CGI程序設(shè)計(jì)技術(shù)08-06

    采用PDIUSBD12的USB系統(tǒng)固件程序設(shè)計(jì)08-06

    基于VxWorks的多DSP系統(tǒng)的多任務(wù)程序設(shè)計(jì)08-06

    基于ARM體系的嵌入式系統(tǒng)BSP的程序設(shè)計(jì)08-06

    基于PCI總線的雙DSP系統(tǒng)及WDM驅(qū)動(dòng)程序設(shè)計(jì)08-06

    基于Vxworks實(shí)時(shí)操作系統(tǒng)的串口通信程序設(shè)計(jì)與實(shí)現(xiàn)08-19

    程序設(shè)計(jì)心得04-26

    国产福利萌白酱精品tv一区_日韩亚洲中字无码一区二区三区_亚洲欧洲高清无码在线_全黄无码免费一级毛片
    1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

      <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
      <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
    2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
      尤物iAⅤ视频在线看 | 伊人久久大香线蕉综合爱首页 | 日本青青在线观看 | 日本精品AⅤ在线观看 | 中文字幕乱码无遮挡 | 亚洲人成色777777在线观看 |