大容量無線傳輸技術(shù)中高性能DSP啟動方法_第1頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、大容量無線傳輸技術(shù)中高性能dsp啟動方法 在極低譜密度,高頻譜利用率的大容量無線傳輸技術(shù)中,高速實時信號處理成為技術(shù)的 關(guān)鍵。目前市場上,能滿足對高速實時信號處理的需要有具有良好的可編程性的器件主要有 和。 tms320c6000 系列dsp 是ti 公司推出的一種高性能的數(shù)字信號處理器,包含定點和浮 點兩個系列,其中定點系列包括tms320c62xx 和tms320c64xx,浮點系列包括tms320c67xx。 c6000 系列dsp 有三種啟動方式:(1) 主機(jī)啟動假如挑選主機(jī)啟動模式,在復(fù)位信號結(jié)束后,dsp 的cpu 被內(nèi)部“堵塞”而其他部分都 被釋放。在此期間,一個外部的主機(jī)在須要

2、時可以通過主機(jī)接口初始化cpu 的內(nèi)存空間,包 括配置與啟動相關(guān)的內(nèi)部寄存器。一旦主機(jī)完成了全部必需的初始化,它必需將h 寄存 器的dspint 位置“1”來完成啟動過程。在程序加載完后,cpu 被從“堵塞”中喚醒,然后 從地址0 處執(zhí)行命令。在cpu 被喚醒后,cpu 需要將dspint 位清零。(2) rom 啟動假如采納rom 啟動模式,則c6000 系列的dsp(c621x/c671x/c64x)復(fù)位后自動從ce1 空間的起始處拷貝1k 字節(jié)的代碼到內(nèi)存空間。該拷貝過程由edma 完成,用法默認(rèn)的rom 時鐘。在此過程中cpu 向來處于“堵塞”狀態(tài),直到拷貝完成后才被被喚醒,然后從地址

3、0 處開頭執(zhí)行程序。(3) 無啟動假如挑選無啟動模式,cpu 復(fù)位后挺直從地址0 處開頭執(zhí)行命令。 c6000 系列dsp 的器件配置狀況打算了挑選的啟動方式。詳細(xì)來說就是dsp 的啟動模式 管腳(boot mode pins)接上拉還是下拉。以c6416 為例,bea19:18是啟動模式管 腳,它們?nèi)〔煌闹担ㄉ侠娮璐怼?”,下拉電阻代表“0”)代表的含義如表1-1 所示:假如dsp 的程序小于1k 字節(jié),那么上述rom 啟動機(jī)制已經(jīng)可以完成程序的加載。然而 實際上大部分dsp 的程序會大于1k 字節(jié),這時就需要創(chuàng)建一個特定啟動程序來完成更多代 碼的加載。該特定啟動程序又被稱作二級boo

4、tloader。在需要二級bootloader 的程序中,這段特定啟動代碼通常駐留在rom 存儲器的起始位 置以便在dsp 復(fù)位后能自動被加載到內(nèi)存地址0 處。當(dāng)1k 字節(jié)代碼被加載完畢后,cpu 開 始從地址0 處執(zhí)行,也就是執(zhí)行二級bootloader 的內(nèi)容。二級bootloader 的功能就是將程 序的剩余部分拷貝到內(nèi)存中。2 啟動辦法的設(shè)計與實現(xiàn)采納二級bootloader 的dsp 啟動辦法的實現(xiàn)大體分為四步:配置存儲器;編寫 secondary bootloader 代碼;編譯程序,轉(zhuǎn)換目標(biāo)文件的格式;將程序燒寫進(jìn)flash。圖1 為實施該啟動辦法的硬件平臺暗示圖,其中dsp 的

5、型號挑選c6416,flash 的型號挑選 am29lv800b。2.1 配置存儲器2.1.1 定義存儲器分區(qū)為了實現(xiàn)用法二級bootloader 的rom 啟動,需要將flash 劃分為flash_boot, flash_rest 兩個區(qū)。這兩個區(qū)別別存儲由on-chip bootloader 拷貝的程序段和由secondary bootloader 拷貝的程序段。對于bios 程序,memory 段的定義在mem(memory section manager)對象里。對于非bios 程序,memory 段定義在linker command file 中。一個c6416 的memory 段定

6、義的例子如下所示:2.1.2 coff 段的定位dsp 程序是以coff 段的形式在內(nèi)存中存放的。一個coff 段就是一個代碼或數(shù)據(jù)塊,它在內(nèi)存中占領(lǐng)延續(xù)空間。coff 段分為自定義段,初始化段和未初始化段三種。coff 段可以有各種屬性,其中l(wèi)oad 屬性和run 屬性跟dsp 啟動有疏遠(yuǎn)關(guān)系。load 屬性指明段的存儲地址,run 屬性指明段的執(zhí)行地址。二級bootloader 負(fù)責(zé)將全部的段從load 地址拷貝到run地址。例如:.text: load= flash, run= iram表示代碼段.text 被存儲在flash 中,dsp 啟動時二級bootloader 將該段拷貝到ir

7、am 中。2.2 編寫secondary bootloader 代碼對于c6416,外部存儲器接口(emif)需要正確配置以后才可以拜訪外部存儲器件。在這項工作完成后,二級bootloader 應(yīng)當(dāng)將全部的初始化段從它們的load 地址拷貝到run 地址,之后再跳轉(zhuǎn)到_c_int00,也即是程序入口點。secondary bootloader 用匯編語言編寫,由于此時c 環(huán)境尚未建立。二級bootloader 必需知道全部初始化段的大小,在flash 中存儲的位置以及應(yīng)當(dāng)被加載到何處才干舉行正確的拷貝。實際上,二級bootloader 通過讀取段拷貝表獲得上述信息。本文第三部分具體解釋了有關(guān)段

8、拷貝表的內(nèi)容。完成二級bootloader 代碼的編寫后,應(yīng)將它添加入工程,與工程的其他代碼一同編譯鏈接生成.out 文件。2.3 轉(zhuǎn)換目標(biāo)文件的格式編譯鏈接生成的是.out 格式文件,然而flash 普通接收的是ascii 格式的文件。ccs附帶的工具h(yuǎn)ex conversion utility 可將.out 文件轉(zhuǎn)換為ascii 格式的.hex 文件,hex6x以指令行文件的形式執(zhí)行。hex 指令行文件中,首先指明輸入文件(.out),輸出文件的格式和rom 的大小及類型,以及哪些段需要被放在rom 中。一個hex 指令行文件的例子如下所示(注釋內(nèi)容用“/*”和“*/”括起):-a /*輸

9、出文件采納ascii 格式*/-image /*鏡像模式*/-memwidth 8 /*rom 數(shù)據(jù)寬度8bit*/romsflash: org = 0x64000000, len=0x100000, romwidth = 8, files =.rom_boot.hexsections /*列出全部需要固化在flash 中的coff 段*/.vectors /*中斷向量表段*/.boot_code /*二級bootloade 段r*/.text /*代碼段*/.cinit /*全局變量初始值段*/2.4 將程序燒寫進(jìn)flash將2.3 節(jié)生成的ascii 文件燒寫進(jìn)flash 可以用法ccs

10、自帶的flashburn 工具。flashburn 是一個帶圖形界面的軟件,它首先將一個稱作flashburn target component(fbtc)的程序下載到dsp 內(nèi)存中,通過與fbtc 的實時數(shù)據(jù)交換完成對flash 的擦除編程等操作。針對不同的硬件(dsp,flash 型號)修改fbtc 是該辦法的關(guān)鍵。所需修改處包括flash 的基地址,大小,及讀寫指令字等。3 段拷貝表二級bootloader 用法一個段拷貝表(section copy table)舉行段的拷貝。段拷貝表包含每個需要拷貝的段的須要信息,如段的load 地址,段的run 地址,段的大小。段拷貝表被插入在sec

11、ondary bootloader 的末尾。生成段拷貝表的辦法有兩種:1) 用法hex conversion utility 的-boot 選項在2.3 節(jié)中我們研究了程序文件格式的轉(zhuǎn)換和hex 指令行文件,實際上code composerstudio 自帶的工具h(yuǎn)ex conversion utility 提供了一種更為便利的生成段拷貝表的辦法,只要在hex 指令行文件中用法一些特別的選項即可。特別的選項有boot, bootorg ? 和bootsection,這三個選項的含義分離如下:-boot 用法該選項時hex conversion utility 將自動轉(zhuǎn)換全部初始化段的格式-bo

12、otorg 指明段拷貝表的地址-bootsection 指明二級bootloader 所在的段的名稱2) 用法linker 選項(load_start,run_start,size)涉及段拷貝表的生成的有三個選項:load_start,run_start 和size,可分離獲得一個段的駐留地址,運行地址和大小。例如下列代碼可獲得text 段的駐留地址(存于_text_ld_start 中),運行地址(_text_rn_start)和段的大?。ù嬗赺text_size).text : load = flash_rest, run = iramload_start(_text_ld_start),run_start(_text_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論