天天被操天天被操综合网,亚洲黄色一区二区三区性色,国产成人精品日本亚洲11,欧美zozo另类特级,www.黄片视频在线播放,啪啪网站永久免费看,特别一级a免费大片视频网站

現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>雙核DSP片TMS320VC5421的并行引導方案

雙核DSP片TMS320VC5421的并行引導方案

時間:2023-02-21 00:18:12 電子通信論文 我要投稿
  • 相關推薦

雙核DSP片TMS320VC5421的并行引導方案

摘要:介紹了利用雙核DSP芯片TMS320VC5421的片內(nèi)Bootloader程序實現(xiàn)并行引導的設計方案,給出了其軟件及硬件的具體實現(xiàn)方法。
  關鍵詞:TMS320VC5421;Bootloader;并行引導;Boot表;FLASH;CPLD
  
  1引言
  
 。裕停樱常玻埃郑茫担矗玻?1、2?(以下簡稱VC5421)是TI公司推出的一款雙核定點DSP芯片,它擁有兩個DSP子系統(tǒng),每個子系統(tǒng)都有一個DSP核,并且均有獨立的數(shù)據(jù)和程序存儲空間,可以進行兩核之間的通信,并且兩個子系統(tǒng)共享一套片外總線。此外,每個子系統(tǒng)各自擁有2k16bit字的片內(nèi)ROM,并存儲有Bootloader程序。當DSP芯片上電或復位時,兩個DSP核可分別啟動自身獨立的Bootloader程序,以實現(xiàn)用戶程序的上電自舉。
  
  雙核DSP自啟動和單核DSP自啟動的實現(xiàn)方法有較大的差別,這一點在DSP系統(tǒng)設計中需要特別注意。本文對雙核DSP芯片VC5421的引導模式進行了深入的分析和研究,給出了使用16位并行引導模式進行雙核DSP引導的實現(xiàn)方案。
  
 。玻裕停樱常玻埃郑茫担矗玻钡模拢铮铮裟J
  
 。郑茫担矗玻笨商峁保段徊⑿幸龑Аⅲ肝徊⑿幸龑Ш痛校牛牛校遥希鸵龑У热NBoot模式來實現(xiàn)用戶程序的上電自舉。
  
  其中16位并行引導模式是通過片外存儲器接口(EMIF)以DMA方式將代碼從16-bit字寬的片外數(shù)據(jù)存儲器搬移到片內(nèi)程序存儲空間;
  
 。肝徊⑿幸龑J絼t是通過片外存儲器接口(EMIF)以DMA方式將代碼從8-bit字寬的片外數(shù)據(jù)存儲器搬移到片內(nèi)的程序存儲空間;
  
  而串行EEPROM引導模式主要是通過多通道緩沖串口2(McBSP2)從主設備中搬移代碼并實現(xiàn)上電自舉。
  
  和54系列中其它芯片不同的是,VC5421片內(nèi)ROM中的Bootloader程序并不支持HPI、并行I/O和標準串口模式的自啟動方式。在其所支持的三種boot模式中,16位并行引導模式是最常用的。本文對這種模式進行了深入分析,給出了使用該模式進行雙核DSP程序引導的方案,并通過實驗驗證了該方案的正確性。
  
 。玻辈⑿幸龑J降倪x擇
  
  VC5421的兩個DSP核在DSP芯片上電或復位時,到底以哪種模式實現(xiàn)上電自舉,主要由兩個核的公共引腳XIO和各自的GPIO0/ROMEN、GPIO1引腳決定。當XIO為0(低電平)時,將不從ROM引導,也就是說,將不使用VC5421片內(nèi)ROM中的Bootloader程序實現(xiàn)上電引導,而是用HPI模式實現(xiàn)上電自舉;當XIO為1(高電平),GPIO0/ROMEN為0時,將使用片外存儲器中用戶自己編寫的Bootloader程序實現(xiàn)上電自舉;當XIO為1?GPIO/ROMEN為1?GPIO1為0或1時,將分別使用并行或者串行引導模式實現(xiàn)上電自舉。因此,在實施相應的上電自舉前,必須將引腳狀態(tài)設置正確,以保證Bootloader程序按預定的模式執(zhí)行。Bootloader模式的選擇流程見圖1。
  
  當Bootloader程序檢測到并行引導模式時,程序將以DMA方式從片外數(shù)據(jù)存儲區(qū)的0000h單元取出模式選擇字(BSW)來進一步?jīng)Q定是8位還是16位的并行引導模式。10AAh意味著選擇了16位并行引導模式,而如果選擇8位并行引導模式,取出的兩個字節(jié)將是08h和AAh。之后,程序將按照Boot表進行加載。圖2是并行引導模式的選擇流程。
  
 。玻玻保段徊⑿幸龑J降模拢铮铮舯
  
 。拢铮铮簦欤铮幔洌澹虺绦蛞嵋频拇a必須組織成一定的格式,這就是Boot表。16位并行引導模式的Boot表如表1所列。
  
  表116位并行導模式Boot表
  
  DMA外部數(shù)據(jù)存儲地址數(shù)據(jù)內(nèi)容含義0000h10AAh16位并行引導標志0001h7FFFhSWWSR0002hF000hBSCR0003h0000h程序入門XPC0004h5000h程序入口地址0005h002Ch代碼長度0006h0000h目的XPC0007h5000h目的地址0008h7761h程序代碼…………程序代碼…………程序代碼0034h0000hBoot表結束
  此外,需要注意的是,由于在多數(shù)程序中都有跳轉指令或循環(huán)指令,所以,Boot表中的程序入口地址必須和程序的cmd文件中分配的地址保持一致,也就是說,當在CCS中進行調(diào)試時,如果程序Load到5000h,Boot表中的程序入口地址就應該是5000h。
  
 。玻常拢铮铮舯淼纳
  
  Boot表可由hex500格式轉換工具生成,也可以自己編寫一個文件格式轉換程序來把.out文件轉換成所需的文件格式。本設計通過編寫一個C++程序來將.out文件轉換成.hex文件,然后再在文件的開始處增加相應的標志位和寄存器設置字,從而形成完整的Boot表。
  
  3VC5421片外總線沖突的解決方案
  
  由于VC5421是雙核DSP,每個核有各自的存儲空間和Bootloader程序,但兩核共享一套片外總線和一個XIO引腳。這樣,當兩核的復位引腳A_RS和B_RS同時收到復位低電平信號時,將同時申請片外總線的控制權。這就造成了申請片外總線的沖突。而且Bootloader程序總是檢查該核有沒有片外總線的控制權,如果沒有,將循環(huán)檢查直到取得片外總線的控制權。為了避免這種情況的發(fā)生,應該以合理的順序給兩個核上電。
  
  由于VC5421中A核帶有用來控制時鐘頻率的鎖相環(huán)電路,所以應該先對A核進行復位,再啟動A核,然后利用A核的用戶程序來控制B核的復位,以實現(xiàn)兩個核的啟動。
  
  根據(jù)系統(tǒng)需要,本設計使用Altera公司的CPLD芯片來產(chǎn)生各種控制信號。其電路連接示意圖如圖3所示。A核的復位信號A_RS由CPLD芯片直接給出,并在系統(tǒng)上電或復位的同時對A核進行復位。而B核的復位信號B_RS則通過CPLD映射到DSP的I/O空間0000h地址單元的第6位:B核復位控制位(在系統(tǒng)復位后值為0)如圖4所示。在A核啟動后,通過用戶程序寫B_RS位可為B核提供復位信號。
  
 。矗郑茫担矗玻钡牟⑿幸龑ё詥硬僮
  
  4.1用戶程序的搬移
  
  兩個DSP核要完成各自的功能,執(zhí)行的用戶程序是不盡相同的,而且A核的用戶程序還要控制B核的復位,因此兩個DSP核的Boot表內(nèi)容是不同的。由DMA方式內(nèi)部存儲器圖可知,程序空間的第0頁和第1頁屬于A核,第2頁和第3頁屬于B核。因此,需要注意的是,當Bootloader程序搬移用戶程序時,A核的用戶程序要被搬移到內(nèi)部程序空間的第0頁上,而B核的用戶程序則要被搬移到第2頁上。于是B核Boot表中的程序入口XPC和目的XPC應被設置成0002h。
  
 。矗玻拢铮铮舯淼姆胖
  
  本系統(tǒng)用4Mbit(256k×16)FLASH器件SST39VF400A作為片外數(shù)據(jù)存儲器。頁選信號由DSP通過CPLD給出,并且映射到DSP中I/O空間的0000h地址單元的低5位(系統(tǒng)復位后5位均為0,即第0頁)。如圖4所示。另外,此地址單元的第5位(CFG位)是控制FLASH映射的配置位。當CFG為0時,FLASH被映射到DMA片外數(shù)據(jù)空間的0000h,此時,Bootloader程序可以以DMA方式從FLASH中搬移數(shù)據(jù)并進行自啟動;當CFG為1時,FLASH被映射到CPU片外數(shù)據(jù)空間的8000h,在這種情況下,可以通過程序向FLASH中燒寫數(shù)據(jù)。因此,這一位在系統(tǒng)上電或復位后將被設置成0,以使A核能夠順利啟動。
  
  由于兩個DSP核的Boot表內(nèi)容不同,故應視Boot表的大小,將兩個Boot表放到FLASH的不同頁上,以便對兩個核分別實行引導。本設計將A核的Boot表放到第0頁,將B核的Boot表放到第1頁。
  
  圖5
  
 。矗惩饪偩控制權的釋放
  
  如圖5所示,在GPIO控制寄存器(地址3Ch)中,XIO_GRANT位為1代表相應的DSP核取得了片外總線的控制權;而在還沒有取得控制權(XIO_GRANT位為0)但在申請片外總線的控制權時,相應的XIO_REQ位應置為1;CORE_SEL位用于表示程序在哪個核上運行,當在CPUA上運行時,讀A核的GPIO控制寄存器的CORE_SEL位將返回到“0”,而當同一個程序在CPUB上運行時,讀B核的GPIO控制寄存器的CORE_SEL位將返回到“1”。有關GPIO控制寄存器的其它相關位,設計時可查閱有關的參考文獻?1?。
  
  4.4FLASH的燒寫
  
  筆者根據(jù)SST39VF400A的資料編寫了一個DSP程序,該程序可同時將A核的Boot表燒寫到FLASH的第0頁,而將B核的Boot表燒寫到第1頁。
  
  在系統(tǒng)上電或復位后,A核首先運行它的Boot-loader程序(此時FLASH的第0頁映射到DMA片外數(shù)據(jù)空間的0000h地址單元),A核啟動后執(zhí)行用戶程序。用戶程序首先將頁選設置成第1頁,這樣,FLASH的第一頁將被映射到DMA片外數(shù)據(jù)空間的0000h;然后,A核釋放片外總線控制權,并給B核發(fā)出復位信號,此時由于只有B核復位,且A核已釋放片外總線的控制權,因此,B核將申請到片外總線控制權,同時執(zhí)行Bootloader程序的啟動以完成整個DSP引導。完整的啟動過程流程圖如圖6所示,下面是A核的啟動測試程序代碼:
  
  ·mmregs
  
  ·titlc″testLEDA″
  
  ·globalbegin
  
  ·text
  
  ?.............
  
 。猓澹纾椋?stm#0x000,0x0061;設置頁選信號
  
 。穑铮颍簦鳎铮埃埃叮,00h
  
 。悖幔欤欤鳎幔椋
  
  andm#0xffcf,3ch;釋放片外總線
  
 。悖幔欤欤鳎幔椋;控制權
  
 。螅簦恚#埃埃埃矗?0x0061;給B核復位信號
  
 。穑铮颍簦鳎埃埃埃叮,00h
  
 。悖幔欤欤鳎幔椋
  
 。螅簦恚#埃埃埃埃,0x0061
  
  portw0x0061,00h
  
 。妫欤幔螅:rsbs1,xf;發(fā)光二極管亮
  
 。悖幔欤欤鳎幔椋
  
 。螅螅猓,xf;發(fā)光二極管滅
  
 。悖幔欤欤鳎幔椋
  
 。猓妫欤幔螅
  
  ;----Subroutinetowaitforsometime----
  
 。鳎幔椋:stm#80,ar6
  
 。欤铮铮穑:stm#30000,ar7-
  
  loop1:nop
  
 。猓幔睿欤铮铮穑,*ar7-
  
  banzloop0,*ar6-
  
 。颍澹
  
 。祵嶒烌炞C
  
  本設計中,在DSP的A_XF和B_XF腳上連接兩個發(fā)光二極管,同時使被加載的用戶程序通過循環(huán)來設置/清除這兩個引腳以使兩個發(fā)光二極管以不同的頻率閃爍,以此來驗證用戶程序是否成功加載。系統(tǒng)上電后,兩個發(fā)光二極管先后以不同的頻率開始閃爍,說明DSP的A核、B核均成功地實現(xiàn)了上電自舉。

【雙核DSP片TMS320VC5421的并行引導方案】相關文章:

CF卡與雙核DSP的實現(xiàn)08-06

DSP外掛Flash在系統(tǒng)編程及并行引導裝載方法08-06

DSP56362的雙引導裝載方法研究與實現(xiàn)08-06

TMS320VC5402 DSP并行8bit EPROM引導裝載方法研究08-06

一種新型多DSP并行處理結構08-06

在DSP處理器上并行實現(xiàn)ATR算法08-06

TMS320VC5402的并行引導裝載方案的研究與設計08-06

DSP+FLASH引導裝載系統(tǒng)的設計與實現(xiàn)08-06

兩類DSP芯片的引導過程分析08-06