雙片ADSP-21160系統(tǒng)的程序加載設(shè)計-新品速遞_第1頁
雙片ADSP-21160系統(tǒng)的程序加載設(shè)計-新品速遞_第2頁
雙片ADSP-21160系統(tǒng)的程序加載設(shè)計-新品速遞_第3頁
雙片ADSP-21160系統(tǒng)的程序加載設(shè)計-新品速遞_第4頁
雙片ADSP-21160系統(tǒng)的程序加載設(shè)計-新品速遞_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

精品文檔-下載后可編輯雙片ADSP-21160系統(tǒng)的程序加載設(shè)計-新品速遞本文檔詳細說明了雙片ADSP-21160系統(tǒng)的加載,以及如何在VISUALDSP++集成開發(fā)環(huán)境中通過DSP將引導(dǎo)程序上載到FLASH中。SHARC系列是美國模擬器件公司(AnalogDevices)的重要芯片系列之一。該系列產(chǎn)品具有很強的數(shù)字信號處理能力,多片SHARC芯片可以構(gòu)成更為處理能力強大的系統(tǒng),廣泛應(yīng)用于通信,雷達等領(lǐng)域。SHARC系列芯片族包含了ADSP-21060/21061/21601/21065L,以及的21160/21161系列。它們共同的特點是不但有強大的處理能力,而且有豐富的接口資源,十分適合多片級聯(lián)構(gòu)成功能更復(fù)雜的系統(tǒng)。在多片系統(tǒng)中,如何對多片SHARCDSP進行程序加載是一個比較實際的問題,本文就是從硬件構(gòu)架和軟件流程上對雙片ADSP-21160的SHARC系統(tǒng)的加載問題進行分析的。

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)采用非主機引導(dǎo)模式,每片的/HBG,/HBR分別置為無效狀態(tài)(拉高)。

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

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

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

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

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

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

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

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

1.3燒寫FLASH的方式

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

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

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

USTAT1=DM(SYSCON);BITSETUSTAT1BSO;DM(SYSCON)=USTAT1;

BITSETMODE1IRPTEN;BITSETIMASKEP1I;BITSETIMASKEP0I;

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

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

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

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

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

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

MPMEMORY

{ID1{START(0x00100000)}//片映射到0x00100000ID2{START(0x00200000)}//片映射到0x00200000}

下是對共享的外部存儲區(qū)的聲明,比如外掛的SRAM等器件的存儲空間{OUTPUT(shared.sm)SECTIONS{dxe_dmex{INPUT_SECTIONS(shared.doj(sram_da))}mem_dmex}}PROCESSORID1//處理器ID1的段定義.{LINK_AGAINST(ID2.dxe)OUTPUT(ID1.dxe)SECTIONS{dxe_rth{INPUT_SECTIONS(ID1.doj(seg_rth)$LIBRARIES(seg_rth))}mem_rthdxe_pmco{INPUT_SECTIONS(ID1.doj(seg_pmco)$LIBRARIES(seg_pmco))}mem_pmcodxe_pmda{INPUT_SECTIONS(ID1.doj(seg_pmda)$LIBRARIES(seg_pmda))}mem_pmdadxe_dmda{INPUT_SECTIONS(ID1.doj(seg_dmda)$LIBRARIES(seg_dmda))}mem_dmda}}

PROCESSORID2//處理器ID2的段定義{LINK_AGAINST(ID1.dxe)OUTPUT(ID2.dxe)SECTIONS{dxe_rth{INPUT_SECTIONS(ID2.doj(seg_rth)$LIBRARIES(seg_rth))}mem_rthdxe_pmco{INPUT_SECTIONS(ID2.doj(seg_pmco)$LIBRARIES(seg_pmco))}mem_pmcodxe_pmda{INPUT_SECTIONS(ID2.doj(seg_pmda)$LIBRARIES(seg_pmda))}mem_pmdadxe_dmda{INPUT_SECTIONS(ID2.doj(seg_dmda)$LIBRARIES(seg_dmda))}mem_dmda}}

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

3.燒寫雙片SHARC的流程實例

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

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

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

在VISUALDSP++集成環(huán)境中,選擇工程屬性(ProjectOption),改變?nèi)缦拢?/p>

1.如上圖,把Type由DSPexecutablefile改為Loaderfile;

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論