TMS320C6000系列DSP的Flash啟動設(shè)計(jì)_第1頁
TMS320C6000系列DSP的Flash啟動設(shè)計(jì)_第2頁
TMS320C6000系列DSP的Flash啟動設(shè)計(jì)_第3頁
TMS320C6000系列DSP的Flash啟動設(shè)計(jì)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、TMS320C6000系列 DSP的 Flash 啟動設(shè)計(jì)摘要:實(shí)現(xiàn)了一種全集成可變帶寬中頻寬帶低通濾波器,討論分析了跨導(dǎo)放大 器-電容(OTAC)連續(xù)時間型濾波器的結(jié)構(gòu)、設(shè)計(jì)和具體實(shí)現(xiàn),使用外部可編程 電路對所設(shè)計(jì)濾波器帶寬進(jìn)行控制,并利用 ADS軟件進(jìn)行電路設(shè)計(jì)和仿真驗(yàn) 證。仿真結(jié)果表明,該濾波器帶寬的可調(diào)范圍為 126 MHz,阻帶抑制率大于 35 dB,帶內(nèi)波紋小于 05 dB,采用 18 V 電源, TSMC 018m CMOS工藝 庫仿真,功耗小于 21 mW,頻響曲線接近理想狀態(tài)。關(guān)鍵詞: Butte 摘要對TMS320C6000系列 DSP的幾種啟動加載方案中的 EMIF加我方

2、式進(jìn)行較詳 細(xì)的分析。然后以 TMS320C6713 DS為P 例,提出一種在主程序中直接燒寫 Flash 的辦法,并與常用的 FlashBurn 工具進(jìn)行比較。實(shí)驗(yàn)證明,本 DSP啟動 加載方案易于實(shí)現(xiàn),比傳統(tǒng)的方法使用更為方便、可靠。關(guān)鍵詞 TMS320C6000啟 動加栽 Flash EMIF引言 隨著近年來數(shù)字信號處理器 (DSP)技術(shù)的迅猛發(fā)展,其越來越廣泛地應(yīng)用 于同民經(jīng)濟(jì)的各個領(lǐng)域中。其中, TI 公司推出的 TMS320C600系0 列 DSP器件更 是在許多需要進(jìn)行大量數(shù)字信號處理運(yùn)算并兼顧高實(shí)時性要求的場合得以應(yīng) 用。 TMS320C600系0 列 DSP的系統(tǒng)設(shè)計(jì)過程中,

3、 DSP器件的啟動加載設(shè)計(jì)是較難 解決的問題之一。C6000 系列 DSP的啟動加載方式包括不加載、主機(jī)加載和 EMIF 加載 3 種。3 種加載方式的比較:不加載方式僅限于存儲器 0 地址不是必須映射到 RAM空間的器件,否則在 RAM空間初始化之前 CPU會讀取無效的代碼而導(dǎo)致錯 誤;主機(jī)加載方式則要求必須有一外部主機(jī)控制 DSP的初始化,這將增加系統(tǒng) 的成本和復(fù)雜度,在很多實(shí)際場合是難以實(shí)現(xiàn)的; EMIF加載方式的 DSP與外部 ROM/Flash接口較為自由,但片上 Bootloader 工具自動搬移的代碼量有限 (1KB 64KB)。本文主要討論常用的 EMIF加載方式。1 EMIF

4、 加載分析 實(shí)際應(yīng)用中,通常采用的是 EMIF加載方式,把代碼和數(shù)據(jù)表存放在外部 的非易失性存儲器里 ( 常采用 Flash 器件) 。下面以 TMS320C6000系列中最新的浮點(diǎn) CPUTMS320C671簡3(稱 “C6713”) 為例,詳細(xì)分析其 EMIF加載的軟硬件實(shí)現(xiàn)。硬件方面,其與 16 位寬度的 Flash 器件的接口如圖 1 所示。對于不同的 DSP器件,加載方式的配置引腳稍有不同。 C6713的配置引 腳及其定義如表 l 所列。應(yīng)用程序的大小決定了片上的 Bootloader 工具是否足夠把所有的代碼 都搬移到內(nèi)部 RAM里。對于 C6713,片上的 Bootloader

5、工具只能將 1 KB 的代 碼搬入內(nèi)部 RAM。通常情況下,用戶應(yīng)用程序的大小都會超過這個限制。所 以,需要在外部 Flash 的前 l KB 范圍內(nèi)預(yù)先存放一小段程序,待片上 Bootloader 工具把此段代碼搬移入內(nèi)部并開始執(zhí)行后,由這段代碼實(shí)現(xiàn)將 Flash 中剩余的用戶應(yīng)用程序搬移入內(nèi)部 RAM中。此段代碼可以被稱作一個簡 單的二級 Bootloader 。圖 2 所示為使用二級 Bootloader 時的 CPU運(yùn)行流程。使用二級 Bootloader 需要考慮以下幾個事項(xiàng):需要燒寫的 COFF公( 共目標(biāo)文件格式 ) 段的選擇;編寫二級 Bootloader ;將選擇的 COFF

6、段燒入 Flash 。一個 COFF段就是占據(jù)一段連續(xù)存儲空間的程序或數(shù)據(jù)塊。 COFF段分為 3種類型:代碼段、初始化數(shù)據(jù)段和未初始化數(shù)據(jù)段。對干 EMIF加載方式,需要加載的鏡像由代碼段 ( 如 vectors 和 text 等)和初始化數(shù)據(jù)段 (如 cinit , const , switch , data 等)構(gòu)成。另 外,可以單獨(dú)定義一個 bootload 段存放二級 Bootloader 。此段也需要寫入 Flash 。所有未初始化的數(shù)據(jù)段 ( 如bss 等) 都不需要燒入到 Flash 中。2 二級 Bootloader 的編寫由于執(zhí)行二級 Bootloader 時 C 的運(yùn)行環(huán)

7、境還未建立起來,所以必須用匯 編語言編寫。二級 Bootloader 可參照其他類似文獻(xiàn)及 TI 相關(guān)文檔。此處不再 贅述。CCS 中用戶工程編譯鏈接后產(chǎn)生的 map文件包含了存儲器的詳細(xì)分配 信息。一個典型的 map文件中包含的存儲器分配信息如表 2 所列。與 cmd 文件不同, map文件不僅包含了各段存儲在哪一段內(nèi)存空間的信 息,從 map文件中還可以具體知道每個內(nèi)存區(qū)間中有多少被實(shí)際使用 ( 燒寫 Flash 時會用到這個參數(shù) ) 。內(nèi)存區(qū)間中未被使用部分是不需要寫入 Flash 內(nèi)容 的,實(shí)際被使用的部分才是真正需要寫入到 Flash 中的內(nèi)容。3 Flash 的燒寫把代碼等寫入 F

8、lash 的辦法大體上可分為以下幾種: 使用通用燒寫器寫入。 使用 CCS中自帶的 FlashBorn 工具。 用戶自己編寫燒寫 Flash 的程序,由 DSP將內(nèi)存映像寫入 Flash 。 其中,使用通用燒寫器燒寫需要將內(nèi)存映像轉(zhuǎn)換為二進(jìn)制或十六進(jìn)制格 式的文件,而且要求 Flash 器件是可插拔封裝的。這將導(dǎo)致器件的體積較大, 給用戶的設(shè)計(jì)帶來不便。使用 TI 公司提供的 FlashBurn 工具的好處在于,使用較為直觀。 FlashBurn 工具提供的圖形界面可以方便地對 Flash 執(zhí)行擦除、編程和查看內(nèi) 容等操作。但這種方法的缺點(diǎn)也不少:首先, FlashBurn 工具運(yùn)行時需要下載

9、 一個 out 鏡像 (FBTC, FlashBurn Target Component) 到 DSP系統(tǒng)中,然后由 上位 PC機(jī)通過仿真器發(fā)送消息 (指令和數(shù)據(jù))給下位 DSP,具體對 Flash 的操作 由 FBTC執(zhí)行。然而,這個 FBTC一般是針對 TI 公司提供的 DSK專門編寫的,與 板上使用的 Flash 的接口寬度 (默認(rèn)是 8 位) 、操作關(guān)鍵字 (因生產(chǎn)廠商不同而各 異)都有關(guān),所以,對用戶自己制作的硬件不一定適合。例如:如果用戶自己的 電路板上使用的是與 DSK同品牌的 Flash 芯片,接口為 16 位數(shù)據(jù)寬度,那么, 使用 FlashBurn 工具燒寫將最多只有一半的

10、 Flash 容量能夠被使用,要想正確 實(shí)現(xiàn) EMIF加載就必須選擇 8 位加載方式。這就造成了 Flash 存儲器資源的浪 費(fèi),同時限制了用戶開發(fā)的靈活性。雖然 TI 公司提供了 FBTC的源代碼供有需要的用戶修改,但這樣用戶需 要去了解 FBTC的運(yùn)行機(jī)制及其與上位機(jī)的通信協(xié)議,并對 Flash 燒寫函數(shù)進(jìn)行 修改。用戶可能需要修改的幾個地方如下:對 Flash 編程的關(guān)鍵字和地址, BurnFlash 函數(shù)中的數(shù)據(jù)指針和 EMIF口的配置 ( 針對 1.0 版本 FBTC)。這就給用 戶開發(fā)帶來了不便。把開發(fā)時間浪費(fèi)在了解一個并不算簡單的F1ash 燒寫工具上并不是一個好的選擇。其次,

11、F1ashBurn工具不能識別 .out 文件,只接受 hex 的十六進(jìn)制文 件,因此,需要將 out 文件轉(zhuǎn)換為 hex 文件。這個轉(zhuǎn)換的工具就是 TI 公司 提供的 Hex6xexe工具。轉(zhuǎn)換過程的同時,需要一個 cmd文件(即圖 3 中的 Hex.cmd)指定作為輸入的 out 文件,輸出的 hex 文件的格式,板上 Flash 芯 片的類型和大小,需要寫入 Flash 中的 COFF段名等。使用用戶自己編寫的燒寫 Flash 的程序較為靈活,避免了文件格式轉(zhuǎn)換 的繁瑣。不過,此方法要求用戶對自己使用的 Flash 芯片較為熟悉。通常采用的 Flash 燒寫程序是單獨(dú)建立一個工程的辦法:

12、先把用戶應(yīng)用 程序( 包含二級 Bootloader) 編譯生成的 out 文件裝載到目標(biāo) DSP系統(tǒng)的 RAM 中,再把燒寫 Flash 的上程編譯生成的 out 文件裝載到目標(biāo) DSP系統(tǒng) RAM的 另一地址范圍,執(zhí)行 Flash 燒寫程序,完成對 Flash 的燒寫。這個辦法要注意 避免兩次裝載可能產(chǎn)生的地址覆蓋,防止第 2 次裝載修改了應(yīng)該寫入 Flash 的 第 1 次裝載的內(nèi)容。實(shí)際上,可以將 Flash 燒寫程序嵌入到用戶主程序代碼中去,比單獨(dú)建 立一個燒寫 Flash 的工程更為方便。 Flash 芯片的燒寫程序段如下:ChipErase 函數(shù)和 ProgramFlashArr

13、ay 函數(shù)的編寫可參照用戶使用的 Flash 芯片的 Datasheet 以及參考文獻(xiàn)。ProgramFlashArray 函數(shù)的第 1 個參數(shù)是源地址指針 ( 指向內(nèi)部 Ram), 第 2 個參數(shù)是目標(biāo)地址指針 ( 指向外部 Flash) ,第 3 個參數(shù)是要寫入的數(shù)據(jù)長 度(單位為字)。編寫 Flash 燒寫函數(shù)時有 3 點(diǎn)需要注意: 指向 Flash 地址的指針。由于 C6713的低兩位地址用于譯碼作字節(jié)選 擇,地址總線的最低位是 EA2,所以,邏輯地址需要適當(dāng)?shù)囊莆徊拍苷_地指 向目標(biāo)。對 8 位存儲器而言,應(yīng)該左移 2 位;對 16 位存儲器而言,應(yīng)該左移 l 位;對于 32位存儲器

14、,則不需要移位。例如要從 (往)Flash 的 0x00000003地 址讀( 寫) 一個字,其邏輯地址應(yīng)該是 0x90000000+(Ox00031),而非 0x90000003。 map文件中各內(nèi)存區(qū)間被實(shí)際占用的尺寸大小是以字節(jié)為單位的,而 ProgramFlashArray 函數(shù)寫入 Flash 的數(shù)據(jù)單位為字,所以需要將 map文件中 得到的尺寸大小的一半作為 ProgramFlashArray 函數(shù)的參數(shù)。 燒寫函數(shù)中使用了 flash_burned 常量作為判斷是否需要對 Flash 操 作的依據(jù),且將其初始化為 1。這是為了避免 Flash 加載之后會執(zhí)行對 Flash 的操作

15、。此變量應(yīng)在燒寫 Flash 時手動修改為 0。在仿真加載方式下,可以在 CCS里的 watchwindow 窗口手動修改 flash_burned 常量為 O,強(qiáng)迫 CPU進(jìn)入對 Flash 編程的程序段。實(shí)驗(yàn)證明,在 仿真加載方式下手動修改 flash_burned 并不影響寫入到 Flash 中的 flash_burn-ed 的值(仍為 1) ,所以,寫入 Flash 的 flash_burned 的值仍然是 l 。在系統(tǒng) Flash 加載之后, CPU就會跳過此段代碼,實(shí)現(xiàn)正確運(yùn)行。4 結(jié)論本 Flash 加載方案以 C6713 為例,稍加修改即可適用于 TMS320C6000系 列的其他 DSP器件。經(jīng)過在研制的伺服測試

溫馨提示

  • 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

提交評論