999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

TMS320C6000 DSPs的ROM自動引導實現

2016-07-13 02:50:13牛亞莉陜西交通職業技術學院陜西西安710018
中國科技縱橫 2016年10期
關鍵詞:用戶

牛亞莉(陜西交通職業技術學院,陜西西安 710018)

?

TMS320C6000 DSPs的ROM自動引導實現

牛亞莉
(陜西交通職業技術學院,陜西西安710018)

【摘 要】本文通過對TMS320C6000系列DSP引導方式及初始化過程的分析,根據實際工程開發經驗,完整詳細的闡述了6000系列DSP的ROM引導方式上電引導過程,以及所需用戶引導文件的編寫,常用系數表的處理方法,落焊文件的生成等過程,并給出了設計代碼,有效解決了TI DSP 6000系列的上電引導及初始化問題。

【關鍵詞】DSP自動引導初始化ROM方式

1 引言

隨著數字信號處理技術的不斷發展,大規模集成芯片及電路的出現,DSP技術被廣泛應用于鐵路信號傳輸[1]、檢測[2]、識別系統[3]中,實現產品的小型化、模塊化,大大提高信號處理的靈活度及處理速度,在鐵路提速、高鐵建設、城市軌道交通發展中隨處可見。

TMS320C6000系列DSP是TI公司推出的新一代高性能DSP,包括定點系列C62xx、C64xx和浮點系列C67xx,其CPU主頻范圍分布在100MHz到600MHz。在DSP的應用過程中,為了保證系統在脫機狀況下能夠實現獨立運行,需要將用戶代碼及一些系數等文件保存在ROM/FLASH等非易失性存儲器當中,在系統加電后,通過DSP自身提供的引導方式將應用程序從外部存儲區搬移到內部RAM以便運行。這樣一方面擴展了DSP有限的ROM資源,另一方面又能充分發揮DSP內部資源的性能優勢。

盡管TI 公司的使用指南上提供了不同引導方式的操作方法,但在實際應用中,往往由于文件描述不夠細致全面加上部分開發者經驗不足,使得鏈接命令文件、初始化系數表及格式化文件等設計不當,導致在DSP上電時不能正常自舉,往往會為工程進度帶來較大的麻煩,甚至影響產品的可靠性。

2 DSP自動引導及初始化

C6000系列DSP提供了三種引導方式,不加載、ROM方式加載和HPI方式加載,其中最常用的就是ROM加載方式。DSP芯片上有專門的管腳用來選擇其引導方式和存儲器映射方式,C620x/C670x DSP芯片由BOOTMODE[4:0]管腳決定,C6211/C6711通過HD[1:0]、C6712/C64x通過BOOTMODE[1:0]來設置。

在ROM引導方式下,DSP加電后首先通過DMA/EDMA將位于外部ROM/FLASH存儲區0地址開始的內容當作一幀數據搬移到內部地址0處。

(1)對于C620x/C670x,DMA從CE1空間自動搬移64KB的數據到內部地址0處;

(2)對于C621x/C671x/C64x,EDMA從CE1空間(對C64x是EMIFB的CE1空間)自動搬移1KB的數據到地址0處。此時一般來說需要編寫用戶引導代碼來完成其余數據的搬移,因為用戶開發的程序一般都會大于1KB。

傳輸完成后,CPU退出復位狀態,開始執行零地址處的指令,即從中斷向量表進入,跳轉到DSP庫函數c_int00或者用戶引導程序,用戶引導程序運行結束后仍然應該跳轉到c_int00,然后開始DSP的初始化過程。

c_int00完成C開發環境的初始化以及.bss段全局變量的初始化,由auto_init庫函數控制,調用memcpy庫函數從.cinit數據段中搬移相應的數據到.bss段中對應的全局變量中,這些過程全都是由DSP自動完成的。初始化完成后,即開始執行應用程序,進入main函數。

表1 CMD文件各段含義

3 軟件設計

一般我們都采用c語言與匯編語言混合使用來進行DSP軟件設計,一個基本的DSP工程至少應該包含一個主程序main()函數、一個中斷向量表.vextors段和一個鏈接命令文件*.cmd。

DSP的命令文件用于將程序中的各段正確的分配到C6000的地址空間中去,通過連接器生成可執行的.out文件。如第二節所介紹的,DSP加載后首先從0地址處開始執行,中斷向量表應該安排在地址零處,我們可以根據實際需要安排程序在0地址處直接轉向c_int00或者轉向用戶引導程序。

常見的DSP應用當中還有對系數表的應用,在編程中可以將系數表作為一個匯編文件添加到DSP工程中,這樣在編譯連接后該文件就會作為一個數據段出現在最后的.out文件(COEF格式)中,可以在加載之后由DMA搬移到內部數據區待用。

3.1命令文件

命令文件的編寫關系到整個工程是否能夠正常工作[4],因此是DSP程序設計非常關鍵的一個環節。

以下以6701為例來說明CMD文件的編寫:

-c

-l rts6701.lib

-stack 0x0400

MEMORY

PRAM : origin = 0x00000000,len = 0x0FFFF

DRAM_init : origin = 0x80000000,len = 0x04800

DRAM: origin = 0x80004800,len = 0x0b000

SECTIONS

.vectors> PRAM

.my_boot> PRAM

.text> PRAM

.cinit: load=PRAM, run=DRAM_init

.bss> DRAM_init

.far> DRAM_init

.stack> DRAM_init

.data_buf1

coef.obj

} load=PRAM, run=DRAM_init

.data_buf2> DRAM

其中,-c代表運行時自動初始化全局變量,ROM加載模式應該使用該選項;各段含義如表1:

DSP最終形成的.out文件分為三種類型的數據段,如表中括號注明的代碼段、初始化段和非初始化段,每一種類型的段都有一個加載地址和一個運行地址。由于我們選擇ROM自動引導方式,上電后位于外部ROM中的程序會自動搬移到內部0地址處的RAM,即DSP通常所指的程序RAM(PRAM)當中,所以這里的加載地址可以直接寫成內部PRAM。代碼段的加載地址和運行地址都在PRAM;非初始化段的加載地址和運行地址都在DRAM_init;而初始化段則應該分配兩個地址,加載地址在PRAM,運行地址在DRAM_init。因此,對于分配了兩個地址的數據段就需要編寫用戶引導代碼,將其從加載地址搬移到運行地址。

3.2用戶引導代碼

由于在DSP的引導過程中C編譯環境還沒有得到初始化,所以用戶引導代碼一般采用匯編語言進行設計,主要用于初始化段的搬移或者1KB以外的代碼數據搬移,以下為具體設計實例:

.sect “.my_boot”

.include boot_c671x.h62

.global _boot

_boot:

;配置EMIF控制寄存器(C621x/C671x/C64x需要,若只是實現初始化段搬移則不需要此配置)

MVKL EMIF_GCTL,A4

|| MVKL 0x3090,B4 ;具體值參考手冊設置

MVKH EMIF_GCTL,A4

|| MVKH 0x3090,B4

stw B4,*A4

;根據需要配置EMIF CE空間控制寄存器、SDRAM 控制寄存器

…………

;設置CSR、ICR、IER寄存器

………….

;設置DMA控制寄存器

MVKL 0x01840044, A1;DMA3_PRIMARY_CTRL

|| MVKL 0xfffffffc,B2

MVKH 0x01840044, A1

|| MVKH 0xfffffffc,B2

LDW *A1, A10

AND A10, B2, A11

STW A11, *A1

;配置DMA副控寄存器,源/目的寄存器,計數寄存器

此時需參考編譯器產生的map文件,確定所需搬移各段地址和長度(注:map文件中長度數據對應于32bit)

…………………

;啟動DMA

MVKL 0x0b000051,A2

MVKH 0x0b000051,A2

STW A2, *A1

IDLE ;傳輸結束后產生中斷,在中斷向量表中跳轉到c_int00,開始初始化過程

4 目標文件產生

用戶編寫的應用程序經過正確的編譯連接以后生成COEF格式的.out文件,由于ROM/FLASH存儲器不支持這種格式,所以在燒寫之前需要將其轉換為十六進制碼的格式。TI提供了專用工具h e x 6 x . e x e可以實現該轉換過程,該文件位于安裝目錄下tic6000cgtoolsin文件夾中。

以下是格式轉換命令文件實例:

channel_s.out/* 用戶應用程序的.out文件,作為hex6x的輸入*/

-m/* 輸出文件格式,m代表Motorola-S格式 */

-memwidth 8/* 存儲寬度 */

-romwidth 8/* ROM數據寬度 */

-o channel_2.hex/* 輸出文件名稱 */

ROMS

FLASH:org = 0x00000000, length = 0xFFFF

若采用16bit ROM加載方式,則連接兩片8位的ROM,地址線連接方式相同,數據線高低八位分別連接。此時,存儲寬度設置為16,將產生兩個HEX文件,命令文件中相應內容改寫為:

-memwidth 16

ROMS

FLASH:org = 0x00000000, length = 0xFFFF

files={ channel_2.b0, channel_2.b1 }

其中.b0文件是低八位數據 ,.b1是高八位數據。通過以上步驟轉換后即可得到可燒寫的目標文件。

5 結語

本文通過分析TMS320C6000系列DSP的加載及初始化過程,結合實際開發經驗,給出了用于ROM自動加載模式下DSP的軟件設計和文件格式轉換方法。通過具體的代碼實例詳細說明了設計過程,尤其是對于命令文件和用戶引導程序的編寫。

參考文獻:

[1]張西峰,杜普選.基于TMS3206722的高度鐵路軌道信號發送與接收模擬系統[J].2010(10):25-28.

[2]孫國斌.基于DSO+FPGA架構的DC6000V供電鐵路客車逆變電源的設計與實現[J].鐵道車輛,2013(7):13-15.

[3]黃雪程,王焱,劉春.基于DSP的鐵路信號識別技術[J].鐵路計算機應用,2009(4):46-48.

[4]李方慧,王飛,何佩琨.TMS320C6000系列DSPs原理與應用[M].北京:電子工業出版社,2003.

作者簡介:牛亞莉(1980—),女,陜西,碩士,陜西交通職業技術學院,高級工程師,從事城市軌道交通控制及數字信號處理方面的工作。

猜你喜歡
用戶
雅閣國內用戶交付突破300萬輛
車主之友(2022年4期)2022-08-27 00:58:26
您撥打的用戶已戀愛,請稍后再哭
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年5期)2016-11-28 09:55:15
兩新黨建新媒體用戶與全網新媒體用戶之間有何差別
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
挖掘用戶需求尖端科技應用
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 青青草国产在线视频| 欧洲av毛片| 亚洲无线观看| 毛片手机在线看| 国产aⅴ无码专区亚洲av综合网| 久久国产免费观看| 午夜视频日本| 亚洲av日韩综合一区尤物| 国产在线98福利播放视频免费| 正在播放久久| 成年女人a毛片免费视频| 国产人在线成免费视频| 国产一国产一有一级毛片视频| 免费在线一区| 亚洲国产成人久久精品软件| 成人一区在线| 免费中文字幕在在线不卡| 国产成人亚洲日韩欧美电影| 国产精品香蕉在线| 免费日韩在线视频| 性视频一区| 国产欧美在线| 国产大片喷水在线在线视频 | 在线观看国产一区二区三区99| 伊人久久久大香线蕉综合直播| 精品久久久久久久久久久| 亚州AV秘 一区二区三区| 多人乱p欧美在线观看| 久久香蕉国产线| 伊人五月丁香综合AⅤ| 国产91丝袜| 亚洲国产日韩在线观看| 亚洲成a人片7777| a免费毛片在线播放| 国产激情无码一区二区APP| 天堂成人在线视频| 91成人在线免费观看| 国产又大又粗又猛又爽的视频| 亚洲第一成人在线| 无码一区18禁| 91九色国产porny| 欧洲精品视频在线观看| 久久综合丝袜长腿丝袜| 免费看av在线网站网址| 热久久国产| 久久国产精品波多野结衣| 92精品国产自产在线观看| 国产成人盗摄精品| 国产精品99在线观看| 91在线视频福利| 婷婷六月在线| 人妻精品久久无码区| AV网站中文| 国产福利免费在线观看| 久久精品亚洲中文字幕乱码| 全部免费毛片免费播放| 在线观看精品自拍视频| 综合亚洲网| 成人第一页| 成人在线观看不卡| 色综合天天娱乐综合网| 欧美三级自拍| 欧洲成人免费视频| 九色最新网址| 亚洲欧美综合在线观看| 国产人成在线视频| 国产精女同一区二区三区久| 国产麻豆精品手机在线观看| 婷婷六月激情综合一区| 午夜精品国产自在| 操国产美女| 欧美日韩激情在线| 成人永久免费A∨一级在线播放| 91无码国产视频| 亚洲青涩在线| 热久久国产| 亚洲欧洲日韩综合色天使| 激情六月丁香婷婷四房播| 精品视频免费在线| 高清不卡一区二区三区香蕉| 中文无码毛片又爽又刺激| 午夜a级毛片|