當前位置:首頁 > 單片機 > 單片機
[導讀] 本文檔詳細說明了雙片ADSP-21160系統(tǒng)的加載,以及如何在VISUAL DSP++集成開發(fā)環(huán)境中通過DSP將引導程序上載到FLASH中

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

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

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

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

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

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

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

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

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

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

    根據(jù)SHARC的總線制裁機制,ID號低的SHARC有較高的優(yōu)先權,所以ID=001的主片先加載。當?shù)谝黄虞d完畢后,通過BR1通知第二片可以開始加載,總線權轉移到ID=010的SHARC。當?shù)诙虞d完畢后,通過BR2通知系統(tǒng),然后此雙片系統(tǒng)開始運行程序。
  
1.2 ADSP-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++ for SHARC中直接讀FLASH里的數(shù)據(jù),無需編程讀出;其次,可以用直接讀寫的辦法燒寫FLASH,還可以用軟件控制插入的等待時間。

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

1.3 燒寫FLASH的方式

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

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


    1.設置BSO,使BMS強制有效,并打開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的寫是字節(jié)編程,所以要把數(shù)據(jù)文件轉化為8bit的字節(jié)形式。每次DMA只能送出一個字節(jié)。

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

    4.有關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_DSP211xxlib )  文件路徑
$LIBRARIES = lib160.dlb;
COMMAND_LINE_OBJECTS.
$OBJECTS = $COMMAND_LINE_OBJECTS;
MEMORY                             //片內存儲區(qū)定義
{ 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) }                                //程序內存,數(shù)據(jù)段
 mem_dmda { TYPE(DM RAM) START(0x00050000) END(0x00057fff) WIDTH(32) }                                //數(shù)據(jù)內存,數(shù)據(jù)段
 mem_dmex { TYPE(DM RAM) START(0x00800000) END(0x00800fff) WIDTH(32) }                                //數(shù)據(jù)存儲區(qū),片外數(shù)據(jù)段
}
  //以下是對多片(ID1 和ID2)映射空間說明

MPMEMORY

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

下是對共享的外部存儲區(qū)的聲明,比如外掛的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
 }
}

    通過以上的定義,就實現(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。

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

1.如上圖,把Type由DSP executable file改為Loader file;

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

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

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

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

4. 結 束 語

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

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

 

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉