<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 雙片ADSP-21160系統的程序加載設計

雙片ADSP-21160系統的程序加載設計

作者: 時(shí)間:2004-12-05 來(lái)源:網(wǎng)絡(luò ) 收藏
本文檔詳細說(shuō)明了,以及如何在VISUAL DSP++集成開(kāi)發(fā)環(huán)境中通過(guò)DSP將引導上載到FLASH中。SHARC系列是美國模擬器件公司(ANALOG DEVICES)的重要芯片系列之一。該系列產(chǎn)品具有很強的數字信號處理能力,多片SHARC芯片可以構成更為處理能力強大的,廣泛應用于通信,雷達等領(lǐng)域。SHARC系列芯片族包含了ADSP-21060/21061/21601/21065L,以及最新的21160/21161系列。它們共同的特點(diǎn)是不但有強大的處理能力,而且有豐富的接口資源,十分適合多片級聯(lián)構成功能更復雜的。

在多片系統中,如何對多片SHARC DSP進(jìn)行是一個(gè)比較實(shí)際的問(wèn)題,本文就是從硬件構架和軟件流程上對的SHARC系統的問(wèn)題進(jìn)行分析的。

1.ADSP-21160系統的硬件構架

1.1雙片的連接 以AD21160N為例。

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

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

如果加載采用EPROM引導,每片SHARC的/BMS做線(xiàn)或后和EPROM的/CE相連。并且每片的BR1,BR2對應相連,其余BRx置為無(wú)效(拉高)。

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

地址總線(xiàn)和數據總線(xiàn)對應相連,并和EPROM的地址線(xiàn),數據線(xiàn)相連。

當雙片系統加電后,主片ADSP-21160和從片ADSP-21160都是從EPROM中讀出256個(gè)字節的初始段。這256個(gè)字節的程序段包含了加載初始化信息,在此段的最后有一張跳轉表,顯示了不同ID的程序對應的不同的存儲地址。SHARC通過(guò)讀自己的系統寄存器得到自己的ID,然后取出自己所要加載的程序代碼的偏移地址。

根據SHARC的總線(xiàn)制裁機制,ID號低的SHARC有較高的優(yōu)先權,所以ID=001的主片先加載。當第一片加載完畢后,通過(guò)BR1通知第二片可以開(kāi)始加載,總線(xiàn)權轉移到ID=010的SHARC。當第二片加載完畢后,通過(guò)BR2通知系統,然后此雙片系統開(kāi)始運行程序。

1.2ADSP-21160與FLASH的連接

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

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

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

1.3燒寫(xiě)FLASH的方式

當使用BMS片選FLASH的時(shí)候,FLASH作為AD21160的字節存儲空間,AD21160只能通過(guò)DMA方式訪(fǎng)問(wèn)FLASH。

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


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

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

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

2.注意對FLASH的寫(xiě)是字節編程,所以要把數據文件轉化為8bit的字節形式。每次DMA只能送出一個(gè)字節。

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

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

2.雙片系統的LDF文件

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

ARCHITECTURE(ADSP-21160) 21160系統
SEARCH_DIR( $ADI_DSP211xxlib ) 庫文件路徑
$LIBRARIES = lib160.dlb;
COMMAND_LINE_OBJECTS.
$OBJECTS = $COMMAND_LINE_OBJECTS;
MEMORY //片內存儲區定義
{mem_rth { TYPE(PM RAM) START(0x00040000) END(0x000400ff) WIDTH(48) } //程序內存,中斷向量表段
mem_pmco { TYPE(PM RAM) START(0x00040100) END(0x000491ff) WIDTH(48) }//程序內存,代碼段
mem_pmda { TYPE(PM RAM) START(0x0004db00) END(0x0004efff) WIDTH(32) }//程序內存,數據段
mem_dmda { TYPE(DM RAM) START(0x00050000) END(0x00057fff) WIDTH(32) }//數據內存,數據段
mem_dmex { TYPE(DM RAM) START(0x00800000) END(0x00800fff) WIDTH(32) } //數據存儲區,片外數據段
}
//以下是對多片(ID1 和ID2)映射空間說(shuō)明

MPMEMORY

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

下是對共享的外部存儲區的聲明,比如外掛的SRAM等器件的存儲空間
{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(seg_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
}
}

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

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

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

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

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

在VISUAL DSP++集成環(huán)境中,選擇工程屬性(Project Option),改變如下:

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

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

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

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

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

4.結 束 語(yǔ)

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

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>