丁香婷婷网,黄色av网站裸体无码www,亚洲午夜无码精品一级毛片,国产一区二区免费播放

現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>TMS320C6x DSP的FLASH引導(dǎo)方法研究與實現(xiàn)

TMS320C6x DSP的FLASH引導(dǎo)方法研究與實現(xiàn)

時間:2023-02-21 00:03:05 電子通信論文 我要投稿
  • 相關(guān)推薦

TMS320C6x DSP的FLASH引導(dǎo)方法研究與實現(xiàn)

摘要:介紹了TMS320C6x DSP的幾種FLASH引導(dǎo)方法,比較了引導(dǎo)過程中基于軟件流水的數(shù)據(jù)搬移方法和QDMA方式的數(shù)據(jù)搬移方法,并介紹了如何利用在系統(tǒng)編程(ISP)對上電引導(dǎo)程序進行FLASH編程。通過對實際的TMS32C6711 DSP電路調(diào)試實驗,證明了以上方法簡單易行。

TMS320C6x DSP的FLASH引導(dǎo)方法研究與實現(xiàn)

    關(guān)鍵詞:FLASH存儲器 上電引導(dǎo) COFF文件格式 DSP

FLASH存儲器是在EPROM和EEPROM的基礎(chǔ)上發(fā)展起來的一種非易失性存儲器,在掉電情況下仍能保證數(shù)據(jù)不丟失,并能夠在不離開電路板或據(jù)設(shè)備的情況下實施擦除和再編程操作。由于其具有結(jié)構(gòu)簡單、維護便利、存取速度快、對環(huán)境適應(yīng)能力強、抗振性能好等優(yōu)點十分適合于嵌入式系統(tǒng)的設(shè)計和開發(fā),并且已成為目前流行的數(shù)字信號處理系統(tǒng)的一個基本配置。

在許多DSP的應(yīng)用中,系統(tǒng)上電后需要將用戶程序從FLASH存儲器引導(dǎo)到高速數(shù)據(jù)存儲器中運行。這就需要給用JTAG接口調(diào)試通過的應(yīng)用程序添加啟動代碼,將生成的目標(biāo)文件進行格式轉(zhuǎn)換使其能在線燒寫,將轉(zhuǎn)換過的文件利用FLASH燒寫程序在線燒寫到FLASH中。

本文將介紹引導(dǎo)過程中數(shù)據(jù)搬移的幾種方法,包括QDMA方式的數(shù)據(jù)搬移方法、CPU直接數(shù)據(jù)搬移方法以及基于軟件流水的數(shù)據(jù)搬移方法。經(jīng)過比較測試,證明了QDMA方式和基于軟件流水的數(shù)據(jù)搬移方法具有優(yōu)越性。并且,根據(jù)COFF文件格式,編寫了比TI公司的HEX60更為直接的轉(zhuǎn)換工具,從而簡化了文件的轉(zhuǎn)換步驟。

圖1

1 應(yīng)用程序的FLASH ROM引導(dǎo)

當(dāng)DSP的應(yīng)用程序從FLASH ROM引導(dǎo)時,目標(biāo)板都有一個自動的引導(dǎo)程序。例如,對于TMS320C6x1x系列,目標(biāo)板的自動引導(dǎo)程序會在系統(tǒng)上電時將FLASH ROM的前1K空間的內(nèi)容復(fù)制以片內(nèi)內(nèi)存自0x00開始的地址空間,并從0x00地址處開始運行。因為需要搬到內(nèi)存中運行的應(yīng)用程序的向量表、初始化段等往往超過1K大小,為了能在系統(tǒng)上電時自動引導(dǎo)應(yīng)用程序運行,就需要在引導(dǎo)的1K代碼中包括自定義的引導(dǎo)代碼,以將額外需要的初始化代碼段和數(shù)據(jù)段復(fù)制到內(nèi)存中運行。

將FLASH ROM的數(shù)據(jù)復(fù)制到IRAM(內(nèi)部RAM)中,有兩種方式:一種是直接存儲器訪問(DMA),它是在沒有CPU參與的情況下完成映射存儲空間的數(shù)據(jù)搬移;另一種是利用CPU直接搬移數(shù)據(jù)。QDMA是快速的DMA,不需要CPU參與數(shù)據(jù)傳輸,只需根據(jù)要傳遞內(nèi)容的信息設(shè)置QDMA的相應(yīng)寄存器即可。用CPU直接搬移數(shù)據(jù)也有兩種方式:一種是是不用流水方式,另一種是采用軟件流水方式。

在C6000的匯編中,不同類型指令有不同數(shù)目的執(zhí)行節(jié)拍。執(zhí)行節(jié)拍在數(shù)量上等于該指令在執(zhí)行級所需要的時鐘周期。對于所用到的讀取指令ldw的存儲指令stw,分別完成從存儲到通用寄存器的數(shù)據(jù)搬移和從通用寄存器到存儲器的數(shù)據(jù)搬移。讀取指令ldw需要執(zhí)行的步驟為:計算地址、地址送內(nèi)存、訪問內(nèi)存、數(shù)據(jù)送CPU、數(shù)據(jù)寫寄存器,即執(zhí)行節(jié)拍數(shù)為5;而存儲指令stw,執(zhí)行節(jié)拍數(shù)為3,需要執(zhí)行的步驟為ldw的前三步。表1給出了軟件流水前后數(shù)據(jù)搬移間隔編排的比較表。

    由表1可見,要將FLASH ROM中的一個數(shù)據(jù)搬移到IRAM中,需要從FLASH ROM中讀取該數(shù)據(jù)到通用寄存器(ldw),再從通用寄存器中將其讀到IRAM(指令stw)。在軟件流水優(yōu)化以前,需要至少8個指令周期。采用軟件流水優(yōu)化以后,根據(jù)指令的特點,第0到第4這5個指令周期可連續(xù)續(xù)5個數(shù)到通用寄存器,從第5到第9這5個指令周期再順序地將讀入通用寄存器的上述5個數(shù)讀出到IRAM。于是,在10個指令周期內(nèi),可完成5個數(shù)據(jù)的搬移,從而使搬移周期下降到了兩個指令周期,提高了CPU的運行效率。

2 QDMA方式和CPU直接數(shù)據(jù)搬移方式的比較

由于前面已比較了CPU直接數(shù)據(jù)搬移的兩種方式,下面著重對QDMA方式和基于流水的CPU直接數(shù)據(jù)搬移方式進行比較測試。這次測試是在TMS320C6711 DSP上進行的,采用的FLASH型號為SST29LE010。首先根據(jù)待燒寫應(yīng)用程序的.map文件找出需搬移的初始化代碼段的大小,其中.text段為0x8c40 byte,.const段為0byte,.cinit段為0x24c byte,共需搬移0x23A3個32bit字。然后利用QDMA方式和CPU流水方式分別從FLASH中讀取0x23A3個32bit字到片內(nèi)內(nèi)存中。測量所用時間結(jié)果如表2所示。

表2 兩種數(shù)據(jù)搬移方式的比較

              訪問速度設(shè)備
   搬移方式 Read setup:150ns
Read strobe:630ns
Read hold:3ns Read setup:0ns
Read strobe:120ns
Read hold:0ns QDMA方式  14825 1479s CPU流水線搬移  15573 2390s

 搬移大小:SIZE=0小3A3 WORD

由測試結(jié)果可以看出,不需要CPU直接參與數(shù)據(jù)搬移的QDMA方式比CPU流水搬移更具優(yōu)越性,搬移速度快且設(shè)置簡單。但CPU的流水搬移利用了TMS320C6000系列DSP匯編的特點,深入分析了指令的軟件流水方式,很大程度地提高了CPU的利用率,拓寬了編程思路,也不失為一種好的選擇。

3 利用ISP對上電引導(dǎo)程序進行了FLASH編程

3.1 文件格式的轉(zhuǎn)換

完成了引導(dǎo)程序,包括.cmd文件中內(nèi)存段的設(shè)置及連接設(shè)置后,用TI的編程工具CCS(Code Composer Studio)編譯連接生成目標(biāo)文件(.out文件)。但該.out文件格式是COFF文件格式,F(xiàn)LASH不支持這種格式,所以不能直接寫入FLASH中,必須對該.out文件進行轉(zhuǎn)換,提取出其中的數(shù)據(jù)部分,形成數(shù)據(jù)文件。最后利用燒寫程序?qū)⒁艳D(zhuǎn)換好的數(shù)據(jù)文件燒寫到FLASH ROM中。(范文先生網(wǎng)www.panasonaic.com收集整理)

有兩種方式可將COFF格式文件轉(zhuǎn)換成數(shù)據(jù)文件。一種是利用TI公司的HEX6x.exe工具,將生成的.out文件轉(zhuǎn)化成.hex輸出文件。由于該HEX6x.exe工具是提供給EPROM編程器的,用EPROM編程器可直接燒寫.hex文件。但對于FLASH ROM的在系統(tǒng)編程來說,生成的.hex文件不能直接使用,必須再編寫一段程序?qū)?hex的文件頭去掉,分離出數(shù)據(jù)文件,最后才能由FLASH的燒寫程序?qū)⒆罱K的數(shù)據(jù)文件燒寫到FLASH ROM中。也可以不用TI公司的工具,而根據(jù)COFF文件格式直接提取出數(shù)據(jù)。生成一個數(shù)據(jù)文件,然后將其燒寫到FLASH ROM中。

COFF文件采用的是向量組織方式,可以很靈活地安排代碼段和目標(biāo)系統(tǒng)存儲器。了解COFF文件的結(jié)構(gòu),不僅可以清楚.cmd文件的編寫原理,而且可以認識初始化段和非初始化段的區(qū)別,同時還可以在轉(zhuǎn)換文件時減少轉(zhuǎn)換步驟。COFF文件的格式如表3所示。

要提取的數(shù)據(jù)部分即臺化段是表3的Row data部分,也就是可執(zhí)行代碼和初始化代碼部分。首先,根據(jù)文件頭的信息(文件頭描述了整個文件的全局信息)獲得文件中段的數(shù)量,然后根據(jù)段的頭(Section header)信息,判斷該段是否為初始化段的頭。因為非初始化段是在程序運行中才分配的,若為初始化段的頭,則取得初始化段的位置,將這些段按地址由低到高的順序復(fù)制到輸出文件,便得到了可燒寫的數(shù)據(jù)文件。其流程如圖1所示。

3.2 利用ISP技術(shù)燒寫FLASH

燒寫程序負責(zé)將前面所生成的數(shù)據(jù)文件寫入FLASH ROM中,利用ISP技術(shù),就不需要其它編程設(shè)備和附加編程電源,直接通過燒寫程序燒寫就可以了。燒寫程序必須根據(jù)所用的FLASH的型號來編寫。以SST29LE010為例,其軟件數(shù)據(jù)保護和頁面寫、芯片擦除、芯片型號軟件檢測等都有不同的指令和時序,如表4所示,需要查閱該型號的芯片手冊,根據(jù)手冊完成燒寫程序。

表4 SST29LE010內(nèi)存指令表

 

總  線  周  期

命令序列 1 2 3 4 5 6 地址 數(shù)據(jù) 地址 數(shù)據(jù) 地址 數(shù)據(jù) 地址 數(shù)據(jù) 地址 數(shù)據(jù) 地址 數(shù)據(jù) 軟件數(shù)據(jù)保護和頁面寫 5555 AA 2AAA 55 5555 A0 地址 數(shù)據(jù)     芯片擦除 5555 AA 2AAA 55 5555 80 5555 AA 2AAA 55 5555 10 芯片型號軟件檢測 5555 AA 2AAA 55 5555 90            

在前面的兩節(jié)點,結(jié)合TMS320C6x系列DSP的特點,介紹了幾種上電引導(dǎo)過程中的數(shù)據(jù)搬移方法,特別推薦和比較了基于軟件流水思想的CPU數(shù)據(jù)搬移方法及QDMA方式,還介紹了ISP技術(shù)對上電引導(dǎo)FLASH編程的基本步驟,及如何根據(jù)COFF文件格式將目標(biāo)文件轉(zhuǎn)換成數(shù)據(jù)文件,供FLASH的燒寫程序燒寫。

從編寫引導(dǎo)程序到將引導(dǎo)程序轉(zhuǎn)換為可供燒寫的數(shù)據(jù)文件,再到最終的FLASH ROM燒寫,是比較繁瑣的過程。本文所介紹的方法為編寫引導(dǎo)程序拓寬了思路,并簡化了文件轉(zhuǎn)換的步驟。通過對實際的TMS320C6711 DSP電路調(diào)試實驗,證明了以上的方法是簡單易行的。


【TMS320C6x DSP的FLASH引導(dǎo)方法研究與實現(xiàn)】相關(guān)文章:

DSP+FLASH引導(dǎo)裝載系統(tǒng)的設(shè)計與實現(xiàn)08-06

DSP56362的雙引導(dǎo)裝載方法研究與實現(xiàn)08-06

DSP外掛Flash在系統(tǒng)編程及并行引導(dǎo)裝載方法08-06

利用Flash實現(xiàn)DSP對多個程序有選擇的加載08-06

TMS320C6000 DSP自動引導(dǎo)的方法和編程實現(xiàn)08-06

TMS320VC5402 DSP并行8bit EPROM引導(dǎo)裝載方法研究08-06

TMS320C5410燒寫Flash實現(xiàn)并行自舉引導(dǎo)08-06

DSP與慢速設(shè)備接口的實現(xiàn)08-06

在仿真環(huán)境下實現(xiàn)TMS320C6000系列DSP的程序自引導(dǎo)08-06