當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]引導(dǎo)裝載是DSP系統(tǒng)設(shè)計中必不可少的重要環(huán)節(jié)。文章對TI公司TMS320C6711中FLASH引導(dǎo)裝載的概念、方法及特點做了詳細闡述,同時以SST公司的FLASH器(SST39VF040)為例,設(shè)計了一個利用FLASH進行引導(dǎo)裝載的系統(tǒng)方案,并給出相應(yīng)的自加載程序源代碼。

   摘要:引導(dǎo)裝載是DSP系統(tǒng)設(shè)計中必不可少的重要環(huán)節(jié)。文章對TI公司TMS320C6711FLASH引導(dǎo)裝載的概念、方法及特點做了詳細闡述,同時以SST公司的FLASH器(SST39VF040)為例,設(shè)計了一個利用FLASH進行引導(dǎo)裝載的系統(tǒng)方案,并給出相應(yīng)的自加載程序源代碼。

    關(guān)鍵詞:數(shù)字信號處理器 FLASH存儲器 引導(dǎo)裝載 TMS320C6711

1 概述

在一些脫機運行的DSP系統(tǒng)中,用戶代碼需要在加電后自動裝載運行。DSP系統(tǒng)的引導(dǎo)裝載(Bootload)是指在系統(tǒng)加電時,由DSP將一段存儲在外部非易失性存儲器中的代碼移植到高速存儲器單元中去執(zhí)行。這樣既可利用外部存儲單元來擴展DSP本身有限的ROM資源,又能充分發(fā)揮DSP內(nèi)部資源的效能。因此,在裝載系統(tǒng)中,外部非易失性存儲器和DSP的性能顯得尤為重要。FLASH是一種高密度、非易失性的電可擦寫存儲器,而且單位存儲比特的價格比傳統(tǒng)EPROM要低,十分適合用于低功耗、小尺寸和高性能的便攜式系統(tǒng)。本文介紹了TI公司TMS320C6711浮點DSP芯片和SST公司SST39VF040 FLASH存儲器的基本特點,同時給出了一具完整的用FLASH來實現(xiàn)系統(tǒng)引導(dǎo)裝載的實現(xiàn)方案。

2 硬件設(shè)計

2.1 器件介紹

整個系統(tǒng)由DSP(TMS320C6711),外部FLASH存儲器(SST39VF040)以及電源管理單元等構(gòu)成。下面主要介紹前面兩個模塊。TMS320C6711數(shù)字信號處理器是美國TI公司推出的TMS320C6000系列浮點DSP的一種,它采用256管腳的BGA封裝,3.3V的I/O電壓和1.8V的內(nèi)核電壓供電方式,并具有兩級cache緩存結(jié)構(gòu)和高達900MFLOPS的峰值運算能力,可廣泛應(yīng)用于圖像處理等系統(tǒng)中。

SST39VF040是SST公司推出的FLASH存儲器,該器件十分適合用作外擴存儲器,它的存儲容量為4MB,采用3.3V單電源供電,無需額外提供高電壓即可通過一些特殊的命令字序列實現(xiàn)對各個子模塊的讀寫和擦除,并且可以重復(fù)十萬次以上,因而可通過DSP軟件編程來實現(xiàn)對它的讀寫操作,十分適合于系統(tǒng)的調(diào)試和開發(fā)。

2.2 硬件連接

DSP訪問片外存儲器主要通過外部存儲器接口(EMIF),它不僅具有很強的接口能力,可以和各種存儲器直接接口,而且還具有很高的數(shù)據(jù)吞吐能力,最高可達1200MB/s。TMS320C6711的EMIF支持8位、16位和32位寬的所有存儲器,當(dāng)從這些窄位寬的存儲空間讀寫數(shù)據(jù)時,EMIF會將多個數(shù)據(jù)打包成一個32位的值,而不必增加額外電路。TMS320C6711與SST39VF040的連接電路如圖1所示。

    該電路主要通過DSP的相關(guān)輸出管腳來控制FLASH的擦除和讀寫。其中,A0~A18為地址線,DQ0~DQ7為數(shù)據(jù)線,OE和WE分別為輸出使能和寫使能,CE1為片使能。由于TMS320C6711默認的引導(dǎo)模式是從外部CE1空間的8位FLASH來引導(dǎo)裝載,所以,TMS320C6711的CE1和FLASH的片選CE相連。如果是從16位或32位FLASH引導(dǎo),則只需將HD[4:3]設(shè)置成相應(yīng)的值即可。

2.3 EMIF寄存器的配置

由于TMS320C6000在異步接口上更加方便,因此,用戶可以靈活地設(shè)置讀寫周期以實現(xiàn)與不同速度、不同類型的異步器件的直接接口。EMIF接口由一組存儲器映射的寄存器進行 控制與維護,包括配置各個空間存儲器類型和設(shè)置讀寫時序等。和異步器件接口時需配置CE空間控制寄存器,由它來控制存儲器的讀寫周期,本系統(tǒng)用到了CE1空間,故需要設(shè)置CE1空間控制寄存器的值。在設(shè)置CE1空間控制寄存器時,應(yīng)滿足以下條件:

(1)異步讀時:

SETUP+STROBE≥(tacc(m)+tsu+tdmax)/tcyc

SETUP+STROBE+HOLD≥(trc(m))/tcye

HOLD≥(th-tdmin-toh(m)/tcye

HOLD≥(th-tdmin-toh(m)/tcye

(2)異步寫時:

STROBE≥(twp(m)/tcye

SETUP+STROBE≥(txw(m))/tcye

HOLD≥(Max(tih(m),twr(m))/tcye

SETUP+STROBE+HOLD≥(twc(m))/tcye

(3)附加參數(shù)TA:TA≥(tohz(m))/tcye

以上參數(shù)可以從芯片手冊里查到,并可據(jù)此得以滿足上述條件的CE1值:CE1=1161C901h。

3 軟件設(shè)計

引導(dǎo)裝載系統(tǒng)主要由實現(xiàn)自加載功能的定制代碼和用戶程序兩部分構(gòu)成,最后都存儲在外擴SST39VF040的指定地址中。其中如何寫定制代碼是設(shè)計的重點,它負責(zé)將中斷向量表和用戶代碼段從片外FLASH移植到其它高速存儲器中,并且將程序指針指向用戶 代碼段的起始地址。

3.1 FLASH引導(dǎo)過程

對于許多DSP應(yīng)用 系統(tǒng),常常需要從FLASH裝載程序到DSP以便使它能夠脫機運行。設(shè)置完芯片裝載方式后,F(xiàn)LASH引導(dǎo)裝載的具體過程如下:

首先將位于外部CE1空間的FLASH(即圖1中的SST39VF040)中的程序通過EDMA自動搬入內(nèi)部RAM的地址0處(參見圖2),實際上,盡管加載過程RAM的地址0處(參見圖2),實際上,盡管加載過程是在芯片復(fù)位信號被釋放后才開始的,但是當(dāng)芯片開始復(fù)位時,就開始準備上述傳輸了。用EDMA進行 的加載過程是一個單幀數(shù)據(jù)塊的傳輸過程,數(shù)據(jù)塊的大小為1kB,當(dāng)然這1kB的數(shù)據(jù)必須包括用于實現(xiàn)自加載功能的定制代碼,1kB的數(shù)據(jù)傳輸完成后,CPU退出復(fù)位狀態(tài),開始執(zhí)行地址0處的自加載功能的定制代碼,同時把其它的初始化段從FLASH拷貝到相應(yīng)的高速存儲器處,之后初始化C變量以換行用戶程序。

3.2 鏈接

在鏈接自加載功能的定制代碼和其它代碼時,需要特別注意該程序COFF(公共目標(biāo)文件格式)段的放置。因為有時候需要對某些段制定兩個不同的地址:一個導(dǎo)入地址,一個運行地址。導(dǎo)入地址用來決定裝載器把段的原始數(shù)據(jù)放在何處,而運行地址就是該段代碼運行的地方。任何對段的引用都是指它的運行地址。因此,如果給某個段指定不同的導(dǎo)入地址和運行地址,在程序訪問該段之前,都需要把它從導(dǎo)入地址拷貝到運行地址處,當(dāng)然這個拷貝過程有時是自動進行的,有時需要人工介入,即由自加載功能的定制代碼來完成。如前面提到的1kB數(shù)據(jù)拷貝就是EDMA自動完成的。顯然,制定兩個不同地址的目的是為了加快代碼的執(zhí)行速度。鏈接可由*.cmd文件來實現(xiàn)。代碼在鏈接在應(yīng)遵循以下原則:

(1)所有代碼和初始化數(shù)據(jù)都必須有一個FLASH的導(dǎo)入地址;

(2)所有非常數(shù)數(shù)據(jù)據(jù)都有一個RAM運行 地址;

(3)未初始化的數(shù)據(jù)無需獨立的導(dǎo)入地址;

(4)從FLASH拷貝到RAM的代碼要有一個FLASH導(dǎo)入地址和RAM運行 地址。

3.3 寫自加載功能的定制代碼

通常1kB的定制代碼需要包括以下三個部分:

(1)配置EMIF寄存器。只有正確配置了EMIF的值,它才有可能訪問外部存儲器FLASH和SDRAM;

(2)拷貝初始化段。對于既有導(dǎo)入地址,又有運行地址的初始化段,需要把它從導(dǎo)入地址拷貝到它的運行地址處,處時還必須參考.map文件來確定要搬移的數(shù)據(jù)塊的大小,這些段代碼的搬移可以用匯編指令MOV來實現(xiàn),也可以用TMS320C6711的EDMA來實現(xiàn)。由于用EDMA搬移數(shù)據(jù)要對EDMA參數(shù)進行設(shè)置,所以通常采用MOV指令來實現(xiàn);

(3)轉(zhuǎn)向C程序的入口_c_int00,即跳轉(zhuǎn)到main()函數(shù)的入口處。

    該自加載功能的代碼如下:

BOOT_SIZE .equ 0x9800 ;待裝載代碼的大小

FLASH_START .equ 0x90000000 ;FLASH起始地址

BOOT_START .equ 0x0000000 ;L2 sram起始地址

EMIF_GCR .equ 0x01800000 ;EMIF全局控制寄存器的地址

EMIF_CE1 .equ 0x01800004 ;CE1空間控制寄存器的地址

EMIF_CE1-8 .equ 0x1161C901 ;CE1空間控制寄存器的值

.sect ".boot_load"

.global_boot

.ref_c_int00

_boot:

mvkl EMIF_GCR,A4

mvkl 0x3300,B4

mvkh EMIF_GCR,A4

mvkh 0x3300,B4

stw B4,*A4 ;配置EMF全局控制寄存器

mvk1 EMIF_CE1,A4

mvk1 EMIF_CE1-8,B4

mvkh EMIF_CE1,A4

mvkh EMIF_CE1-8,B4

stw B4,*A4 ;配置CE1空間控制寄存器

mvkl BOOT_START+1024,A4 ;待搬移數(shù)據(jù)的目標(biāo)地址

mvkl FLASH_START+1024,B4 ;待搬移數(shù)據(jù)的源地址

mvkh BOOT_START+1024,A4

mvkh FLASH_START+1024,B4

zer0 A1

_boot_loop1: 數(shù)據(jù)搬移

ldb *B4++,B5

mvkl BOOT_SIZE,B6

add 1,A1,A1

mvkh BOOT_SIZE,B6 ;B6為待搬移數(shù)據(jù)塊大小,可根據(jù)實際情況來修改

cmplt A1,B6,B0

nop

stb B5,*A4++

[B0]b_boot_loop1

nop 5

mvk1 .S2_c_init00,B0

mvkh .S2_c_int00,B0

B .S2 B0 ;轉(zhuǎn)向C程序的入口

nop 5

3.4 FLASH編程

建立好了上述定制代碼段、用戶程序段、中斷向量表和鏈接命令文件后,便可利用TI公司的DSP集成開發(fā)環(huán)境CCS進行編譯、調(diào)試及鏈接,之后生成的目標(biāo)文件*.out就是DSP能夠識別的COFF格式。為了使系統(tǒng)能夠脫機運行,需要把該目標(biāo)文件的代碼寫入FLASH中,往FLASH中寫入目標(biāo)代碼可以采用以下兩種方法:

(1)用硬件仿真器XDS510/560通過JTAG口對FLASH進行在線編程。此時需要把*.out文件數(shù)據(jù)放入緩沖存儲器,然后按照FLASH芯片手冊提供的編程格式把緩沖存儲器里的數(shù)據(jù)寫入FLASH。

(3) 利用編程器進行編程。由于編程器不支持*.out文件模式,不能直接寫入FLASH中,所以必須將*.out文件轉(zhuǎn)換成編程器可讀入的*.hex格式,這可以通過CCS軟件中的轉(zhuǎn)換工具hex6x來實現(xiàn),轉(zhuǎn)換時要注意hex.cmd文件的寫法,而且整個文件轉(zhuǎn)換過程是在DOS提示符下完成的。

4 結(jié)論

利用上述方法可使系統(tǒng)在脫機狀態(tài)下實現(xiàn)引導(dǎo)裝載,本次實驗所用的用戶代碼段的功能是利用 DSP的多通道緩沖串口發(fā)送一個字符串給PC機的RS232口。按照前面的方法寫好定制代碼段、用戶程序段、中斷向量表和鏈路命令文件并進行編譯、鏈接、格式轉(zhuǎn)換以及寫入FLASH之后,系統(tǒng)就可以實現(xiàn)脫機運行了。這樣,給DSP系統(tǒng)加電后,就可以通過串行口調(diào)試軟件在PC機上接收到DSP所發(fā)送的字符串以證明引導(dǎo)裝載成功。由于用戶代碼段也可以被其它程序代替,因此,本文設(shè)計的引導(dǎo)裝載系統(tǒng)其有一定的通用性。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉