国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

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

發布時間:2010-11-25 23:11    發布者:designer
關鍵詞: dsp , TMS320VC5421 , 并行引導
1 引言

TMS320VC54211、2(以下簡稱VC5421)是TI公司推出的一款雙核定點DSP芯片,它擁有兩個DSP子系統,每個子系統都有一個DSP核,并且均有獨立的數據和程序存儲空間,可以進行兩核之間的通信,并且兩個子系統共享一套片外總線。此外,每個子系統各自擁有2k 16bit字的片內ROM,并存儲有Bootloader程序。當DSP芯片上電或復位時,兩個DSP核可分別啟動自身獨立的Bootloader程序,以實現用戶程序的上電自舉。





雙核DSP自啟動和單核DSP自啟動的實現方法有較大的差別,這一點在DSP系統設計中需要特別注意。本文對雙核DSP芯片VC5421的引導模式進行了深入的分析和研究,給出了使用16位并行引導模式進行雙核DSP引導的實現方案。

2 TMS320VC5421的Boot模式

VC5421可提供16位并行引導、8位并行引導和串行EEPROM引導等三種Boot模式來實現用戶程序的上電自舉。 其中16位并行引導模式是通過片外存儲器接口(EMIF)以DMA方式將代碼從16-bit字寬的片外數據存儲器搬移到片內程序存儲空間; 8位并行引導模式則是通過片外存儲器接口(EMIF)以DMA方式將代碼從8-bit字寬的片外數據存儲器搬移到片內的程序存儲空間; 而串行EEPROM引導模式主要是通過多通道緩沖串口2(McBSP 2)從主設備中搬移代碼并實現上電自舉。 和54系列中其它芯片不同的是,VC5421片內ROM中的Bootloader程序并不支持HPI、并行I/O和標準串口模式的自啟動方式。在其所支持的三種boot模式中,16位并行引導模式是最常用的。本文對這種模式進行了深入分析,給出了使用該模式進行雙核DSP程序引導的方案,并通過實驗驗證了該方案的正確性。




2.1 并行引導模式的選擇

VC5421的兩個DSP核在DSP芯片上電或復位時,到底以哪種模式實現上電自舉,主要由兩個核的公共引腳XIO和各自的GPIO0/ROMEN、GPIO1引腳決定。當XIO為0(低電平)時,將不從ROM引導,也就是說,將不使用VC5421片內ROM中的Bootloader程序實現上電引導,而是用HPI模式實現上電自舉;當XIO為1(高電平),GPIO0/ROMEN為0時,將使用片外存儲器中用戶自己編寫的Bootloader程序實現上電自舉;當XIO為1? GPIO/ROMEN為1? GPIO1為0或1時,將分別使用并行或者串行引導模式實現上電自舉。因此,在實施相應的上電自舉前,必須將引腳狀態設置正確,以保證Bootloader程序按預定的模式執行。Bootloader模式的選擇流程見圖1。 當Bootloader程序檢測到并行引導模式時,程序將以DMA方式從片外數據存儲區的0000h單元取出模式選擇字(BSW)來進一步決定是8位還是16位的并行引導模式。10AAh意味著選擇了16位并行引導模式,而如果選擇8位并行引導模式,取出的兩個字節將是08h和AAh。之后,程序將按照Boot表進行加載。圖2是并行引導模式的選擇流程。

2.2 16位并行引導模式的Boot表

Bootloader程序要搬移的代碼必須組織成一定的格式,這就是Boot表。16位并行引導模式的Boot表如表1所列。 表1 16位并行導模式Boot表 DMA外部數據存儲地址數 據 內 容含 義 0000h 10AAh 16位并行引導標志 0001h 7FFFh SWWSR 0002h F000h BSCR 0003h 0000h 程序入門XPC 0004h 5000h 程序入口地址 0005h 002Ch 代碼長度 0006h 0000h 目的XPC 0007h 5000h 目的地址 0008h 7761h 程序代碼 …… …… 程序代碼 …… …… 程序代碼 0034h 0000h Boot表結束此外,需要注意的是,由于在多數程序中都有跳轉指令或循環指令,所以,Boot表中的程序入口地址必須和程序的cmd文件中分配的地址保持一致,也就是說,當在CCS中進行調試時,如果程序Load到5000h,Boot表中的程序入口地址就應該是5000h。

2.3 Boot表的生成

Boot表可由hex500格式轉換工具生成,也可以自己編寫一個文件格式轉換程序來把.out文件轉換成所需的文件格式。本設計通過編寫一個C++程序來將.out文件轉換成.hex文件,然后再在文件的開始處增加相應的標志位和寄存器設置字,從而形成完整的Boot表。





3 VC5421片外總線沖突的解決方案

由于VC5421是雙核DSP,每個核有各自的存儲空間和Bootloader程序,但兩核共享一套片外總線和一個XIO引腳。這樣,當兩核的復位引腳A_RS和B_RS同時收到復位低電平信號時,將同時申請片外總線的控制權。這就造成了申請片外總線的沖突。而且Bootloader程序總是檢查該核有沒有片外總線的控制權,如果沒有,將循環檢查直到取得片外總線的控制權。為了避免這種情況的發生,應該以合理的順序給兩個核上電。 由于VC5421中A核帶有用來控制時鐘頻率的鎖相環電路,所以應該先對A核進行復位,再啟動A核,然后利用A核的用戶程序來控制B核的復位,以實現兩個核的啟動。 根據系統需要,本設計使用Altera公司的CPLD芯片來產生各種控制信號。其電路連接示意圖如圖3所示。A核的復位信號A_RS由CPLD芯片直接給出,并在系統上電或復位的同時對A核進行復位。而B核的復位信號B_RS則通過CPLD映射到DSP的I/O空間0000h地址單元的第6位:B核復位控制位(在系統復位后值為0)如圖4所示。在A核啟動后,通過用戶程序寫B_RS位可為B核提供復位信號。



4 VC5421的并行引導自啟動操作

4.1 用戶程序的搬移

兩個DSP核要完成各自的功能,執行的用戶程序是不盡相同的,而且A核的用戶程序還要控制B核的復位,因此兩個DSP核的Boot表內容是不同的。由DMA方式內部存儲器圖可知,程序空間的第0頁和第1頁屬于A核,第2頁和第3頁屬于B核。因此,需要注意的是,當Bootloader程序搬移用戶程序時,A核的用戶程序要被搬移到內部程序空間的第0頁上,而B核的用戶程序則要被搬移到第2頁上。于是B核Boot表中的程序入口XPC和目的XPC應被設置成0002h。

4.2 Boot表的放置

本系統用4Mbit(256k%26;#215;16)FLASH器件SST39VF400A作為片外數據存儲器。頁選信號由DSP通過CPLD給出,并且映射到DSP中I/O空間的0000h地址單元的低5位(系統復位后5位均為0,即第0頁)。如圖4所示。另外,此地址單元的第5位(CFG位)是控制FLASH映射的配置位。當CFG為0時,FLASH被映射到DMA片外數據空間的0000h,此時,Bootloader程序可以以DMA方式從FLASH中搬移數據并進行自啟動;當CFG為1時,FLASH被映射到CPU片外數據空間的8000h,在這種情況下,可以通過程序向FLASH中燒寫數據。因此,這一位在系統上電或復位后將被設置成0,以使A核能夠順利啟動。 由于兩個DSP核的Boot表內容不同,故應視Boot表的大小,將兩個Boot表放到FLASH的不同頁上,以便對兩個核分別實行引導。本設計將A核的Boot表放到第0頁,將B核的Boot表放到第1頁。 圖5

4.3 外總線控制權的釋放

如圖5所示,在GPIO控制寄存器(地址3Ch)中,XIO_GRANT位為1代表相應的DSP核取得了片外總線的控制權;而在還沒有取得控制權(XIO_GRANT位為0)但在申請片外總線的控制權時,相應的XIO_REQ位應置為1;CORE_SEL位用于表示程序在哪個核上運行,當在CPU A上運行時,讀A核的GPIO控制寄存器的CORE_SEL位將返回到“0”,而當同一個程序在CPU B上運行時,讀B核的GPIO控制寄存器的CORE_SEL位將返回到“1”。有關GPIO控制寄存器的其它相關位,設計時可查閱有關的參考文獻。

4.4 FLASH的燒寫

筆者根據SST39VF400A的資料編寫了一個DSP程序,該程序可同時將A核的Boot表燒寫到FLASH的第0頁,而將B核的Boot表燒寫到第1頁。 在系統上電或復位后,A核首先運行它的Boot-loader程序(此時FLASH的第0頁映射到DMA片外數據空間的0000h地址單元),A核啟動后執行用戶程序。用戶程序首先將頁選設置成第1頁,這樣,FLASH的第一頁將被映射到DMA片外數據空間的0000h;然后,A核釋放片外總線控制權,并給B核發出復位信號,此時由于只有B核復位,且A核已釋放片外總線的控制權,因此,B核將申請到片外總線控制權,同時執行Bootloader程序的啟動以完成整個DSP引導。完整的啟動過程流程圖如圖6所示,下面是A核的啟動測試程序代碼: %26;#183;mmregs %26;#183;titlc ″testLEDA″ %26;#183;global begin %26;#183;text ............. begin stm #0x000,0x0061 ;設置頁選信號 portw ox0061,00h call wait andm #0xffcf,3ch ;釋放片外總線 call wait ; 控制權 stm #0x00410x0061 ;給B核復位信號 portw 0x0061,00h



call wait stm #0x0001,0x0061 portw 0x0061,00h flash: rsbs 1,xf ;發光二極管亮 call wait ssbx 1,xf ;發光二極管滅 call wait b flash ;----Subroutine to wait for some time---- wait: stm #80,ar6 loop0: stm #30000,ar7- loop1: nop banz loop1,*ar7- banz loop0,*ar6- ret

5 實驗驗證

本設計中,在DSP的A_XF和B_XF腳上連接兩個發光二極管,同時使被加載的用戶程序通過循環來設置/清除這兩個引腳以使兩個發光二極管以不同的頻率閃爍,以此來驗證用戶程序是否成功加載。系統上電后,兩個發光二極管先后以不同的頻率開始閃爍,說明DSP的A核、B核均成功地實現了上電自舉。
本文地址:http://m.qingdxww.cn/thread-41909-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • FPGA設計流程培訓教程
  • 無線充電基礎知識及應用培訓教程
  • Chiptorials ——使用ATECC608 TrustFLEX實現基本非對稱身份驗證
  • Chiptorials ——如何將CryptoAuthLib庫用于Microchip安全身份驗證IC
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 婷婷在线播放 | 手机日韩看片 | 久久中文字幕不卡一二区 | 国产三区视频 | 精品国产品香蕉在线观看75 | 四虎国产免费 | 欧美日韩在线成人 | 日本高清不卡在线观看 | 亚洲成人手机在线 | 久久美女网 | 魏璎珞电视剧免费观看 | 国产人成精品午夜在线观看 | 福利理论片午夜片 | 日韩欧美在线观看一区 | 欧美大陆日韩一区二区三区 | 精品综合网| 亚洲一区二区三区久久久久 | 爱视频福利 | 超级极品白嫩美女在线 | 国产精品老牛影视 | 快播日韩| 97夜色| 日本不卡在线观看 | 欧美理论影院在线观看免费 | 超级极品白嫩美女在线 | 免费a级毛片 | 操操色| 涩涩小说| 狠狠色成人综合网图片区 | 日韩城人免费 | 成人在线网址 | 日韩精品欧美视频 | 在线观看精品国产 | 国产精品一二区 | 国产麻豆精品 | 特黄特级高清免费视频毛片 | 免费国产h视频在线观看 | 欧美自拍偷拍 | 国产三级在线观看完整版 | 欧美在线导航 | 久久这里只有精品任你色 |