<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于TMS320C6678 的多核DSP 上電加載技術(shù)

          基于TMS320C6678 的多核DSP 上電加載技術(shù)

          作者: 時(shí)間:2014-01-19 來(lái)源:網(wǎng)絡(luò) 收藏

          在視頻檢測(cè)、醫(yī)療影像及紅外圖像快速跟瞄系統(tǒng)應(yīng)用中,越來(lái)越復(fù)雜的二維、三維甚至四維的圖像處理,需要并行化的處理系統(tǒng),并能夠運(yùn)行復(fù)雜的算法。要實(shí)現(xiàn)這些復(fù)雜的系統(tǒng),高端FPGA+高性能是目前普遍采用的方案,而單個(gè)的性能已發(fā)展至極限,所以解決復(fù)雜的并行算法,多核是現(xiàn)在發(fā)展的全新方向,其中多核DSP的根加載技術(shù)是其難點(diǎn)之一。

          本文引用地址:http://www.ex-cimer.com/article/226799.htm

          TI公司推出的DSP芯片(C6678)具有8個(gè)內(nèi)核的高性能DSP,每個(gè)內(nèi)核工作頻率均達(dá)1 GHz.

          其支持的Boot 模式有SPI、I2C、EMAC、SRIO 和并口Emif16 NOR-FLASH.其中Emif16 NOR-FLASH模式是不用上位機(jī)參與、比較簡(jiǎn)單、獨(dú)立成系統(tǒng)的一種,大多獨(dú)立DSP系統(tǒng)采用該方式。

          網(wǎng)上能搜索到關(guān)于C6472和C6678零星一些加載資料,都是借助于第三方轉(zhuǎn)換工具,太過(guò)于籠統(tǒng)。下面是針對(duì)C6678 的并口Emif16NOR-FLASH的上電加載作詳細(xì)的探討。

          1 C6678 的上電加載過(guò)程

          所謂上電加載(上電自舉),即是當(dāng)DSP復(fù)位后,正常運(yùn)行用戶程序之前運(yùn)行的一段小程序,就像PC機(jī)的BIOS 一樣。多核加載同單核加載區(qū)別很大,不但要負(fù)責(zé)主核的加載而且還有其他核的加載與激活。C6678的Emif16 NOR-FLASH 可以直接執(zhí)行程序(XIP)(這與C641x系列DSP不同),其上電加載過(guò)程示于圖1.

          上電復(fù)位后,DSP 首先運(yùn)行固化在片上ROM 位于地址0x20b00000 的程序,稱為片上Loader,片上Loader根據(jù)DSP硬件管腳狀態(tài),判斷用戶采用的Boot模式以跳轉(zhuǎn)到相應(yīng)模式的二級(jí)加載程序。如圖1的Emif16 NOR-FLASH 模式中,運(yùn)行片上Loader 后,PC 指針直接指向NOR-FLASH 首地址0×70000000 并開始執(zhí)行FLASH 上的二級(jí)Loader 程序,二級(jí)Loader 存儲(chǔ)在FLASH 開始地址0×70000000~0×70000400 的范圍內(nèi)。從0×70000400開始保存應(yīng)用程序的根表數(shù)據(jù)(即被燒燒寫到FLASH中的應(yīng)用程序的數(shù)據(jù))。二級(jí)Loader的功能是將保存在FLASH中的Core0~Core7的根表數(shù)據(jù)搬移到DSP相應(yīng)的地址段內(nèi),搬移完后,二級(jí)Loader 程序PC 指針跳到Core0的主程序入口地址_c_int00處,開始執(zhí)行Core0的應(yīng)用程序。在Core0 的應(yīng)用程序開始加有使其他核激活運(yùn)行的代碼(這也是有別于單核的特殊之處),至此整個(gè)多核加載就此完成。事實(shí)上,如果你的應(yīng)用程序很小,且運(yùn)行速度要求不高,圖1中的2、3和4過(guò)程都可以不要,只要把應(yīng)用程序的原始代碼數(shù)據(jù)燒寫到FLASH從0×70000000 開始的位置,上電正常運(yùn)行即可(這在C641x 上是不行的),如此DSP 的許多高性能就體現(xiàn)不出來(lái),且多核工程大多采用嵌入式sysbios工程,占用存儲(chǔ)器比較大,所以正常的Boot過(guò)程必須采用圖1所示的二級(jí)加載過(guò)程。

          基于TMS320C6678 的多核DSP 上電加載技術(shù)

          從圖1 中看出,一個(gè)完整多核加載過(guò)程,開發(fā)者需要做的是二級(jí)加載器Loader 的編寫、FLASH 中映像文件的產(chǎn)生、FLASH燒寫器的編寫,主核對(duì)各輔助核的觸發(fā)代碼的編寫(被加載的應(yīng)用程序不在本范圍內(nèi))。

          2 多核映像文件的組成與產(chǎn)生

          映像文件就是用戶要燒寫到外部FLASH上的全部數(shù)據(jù)文件,它是由二級(jí)加載器Loader的代碼數(shù)據(jù)(在文件前部)和應(yīng)用程序的根表(Boot Table)數(shù)據(jù)(文件后部)的合成數(shù)據(jù)文件。單核和多核的二級(jí)Loader 都一樣,區(qū)別就是后部的根表數(shù)據(jù)。根表是應(yīng)用程序的所有代碼和數(shù)據(jù)以在片上占用的地址來(lái)分段存儲(chǔ)的數(shù)據(jù)包,包的第一個(gè)4 B 是main()函數(shù)的入口地址_C_int00,后面由若干數(shù)據(jù)段組成,每個(gè)段前4 B為該段數(shù)據(jù)的字節(jié)長(zhǎng)度Byte_count_x(x 為段序號(hào)),接著4 B Address_x 為該段在片上的存儲(chǔ)地址,后面是Byte_count_x個(gè)字節(jié)的具體數(shù)據(jù)Data_x.所有數(shù)據(jù)段結(jié)束后是4個(gè)字節(jié)0作為根表的結(jié)束標(biāo)記。該根表格式如表1所示。每一個(gè)段的數(shù)據(jù)字節(jié)數(shù)可能不是4的整數(shù)倍,根表中數(shù)據(jù)區(qū)就在后面添0按4 B的整數(shù)倍向上取整,故整個(gè)根表文件字節(jié)數(shù)必是4的整數(shù)倍。

          根表數(shù)據(jù)產(chǎn)生很簡(jiǎn)單,由應(yīng)用程序最終生成的Out文件,通過(guò)ccs自帶工具h(yuǎn)ex6x.exe選擇不同的參數(shù)而產(chǎn)生,產(chǎn)生的文件即是根表文件,可以選擇生成二進(jìn)制文件或文本文件,本研究采用二進(jìn)制。其產(chǎn)生命令為(app為應(yīng)用程序名,app.out為ccs產(chǎn)生的連接文件):

          hex6x -boot -b -e _c_int00 -order L -memwidth=32 -romwidth=32 -o app.bin app.out

          app.bin為產(chǎn)生的二進(jìn)制根表文件,將二級(jí)Loader程序的二進(jìn)制代碼加到根表文件的頭部即是app 應(yīng)用程序的映像文件。

          基于TMS320C6678 的多核DSP 上電加載技術(shù)

          多核的映像文件是由二級(jí)加載器Loader和多個(gè)核應(yīng)用的根表合并而成的文件。多個(gè)核對(duì)應(yīng)多個(gè)獨(dú)立的工程,并由CCS 產(chǎn)生多個(gè)out 文件,再由hex6x.exe 產(chǎn)生各核的根表文件。后對(duì)Core0 的根表文件先去掉末尾4 個(gè)0字節(jié),再將各輔助核的根表文件的開始的入口地址_C_int00和末尾4個(gè)0字節(jié)去掉,加到Core0被去掉了末尾字節(jié)的根表文件后,然后再將每個(gè)核的_C_int00當(dāng)成一個(gè)4字節(jié)的數(shù)據(jù)段來(lái)保存到上面的合成文件的后面,而各_C_int00在片上的存放地址即為各核的專門固定地址Boot Magic Address,如Core1 的Boot Magic Ad-dress 為0x1187fffc,Core2 為0x1287fffc,…,Core7 為0x1787fffc.所有根表數(shù)據(jù)段構(gòu)成后,再將4個(gè)0字節(jié)作為結(jié)尾標(biāo)志加到文件的最后,這樣合并后的根表文件如表2所示。同樣,將二級(jí)Loader的代碼數(shù)據(jù)加到該文件頭部即形成多核的映像文件。由hex6x 生成的單核根表文件到合成映像文件的產(chǎn)生,全是文件操作,可以用一般的C語(yǔ)言工具,甚至Matlab等工具都可以完成。基于TMS320C6678 的多核DSP 上電加載技術(shù)


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: TMS320C6678 DSP

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();