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

現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>TMS320C6711的FLASH引導(dǎo)裝載系統(tǒng)研究與設(shè)計(jì)

TMS320C6711的FLASH引導(dǎo)裝載系統(tǒng)研究與設(shè)計(jì)

時(shí)間:2023-02-20 22:38:44 電子通信論文 我要投稿
  • 相關(guān)推薦

TMS320C6711的FLASH引導(dǎo)裝載系統(tǒng)研究與設(shè)計(jì)

  摘要:引導(dǎo)裝載是DSP系統(tǒng)設(shè)計(jì)中必不可少的重要環(huán)節(jié)。文章對TI公司TMS320C6711中FLASH引導(dǎo)裝載的概念、方法及特點(diǎn)做了詳細(xì)闡述,同時(shí)以SST公司的FLASH器(SST39VF040)為例,設(shè)計(jì)了一個(gè)利用FLASH進(jìn)行引導(dǎo)裝載的系統(tǒng)方案,并給出相應(yīng)的自加載程序源代碼。
  關(guān)鍵詞:數(shù)字信號處理器FLASH存儲(chǔ)器引導(dǎo)裝載TMS320C6711
  
  1概述
  
  在一些脫機(jī)運(yùn)行的DSP系統(tǒng)中,用戶代碼需要在加電后自動(dòng)裝載運(yùn)行。DSP系統(tǒng)的引導(dǎo)裝載(Bootload)是指在系統(tǒng)加電時(shí),由DSP將一段存儲(chǔ)在外部非易失性存儲(chǔ)器中的代碼移植到高速存儲(chǔ)器單元中去執(zhí)行。這樣既可利用外部存儲(chǔ)單元來擴(kuò)展DSP本身有限的ROM資源,又能充分發(fā)揮DSP內(nèi)部資源的效能。因此,在裝載系統(tǒng)中,外部非易失性存儲(chǔ)器和DSP的性能顯得尤為重要。FLASH是一種高密度、非易失性的電可擦寫存儲(chǔ)器,而且單位存儲(chǔ)比特的價(jià)格比傳統(tǒng)EPROM要低,十分適合用于低功耗、小尺寸和高性能的便攜式系統(tǒng)。本文介紹了TI公司TMS320C6711浮點(diǎn)DSP芯片和SST公司SST39VF040FLASH存儲(chǔ)器的基本特點(diǎn),同時(shí)給出了一具完整的用FLASH來實(shí)現(xiàn)系統(tǒng)引導(dǎo)裝載的實(shí)現(xiàn)方案。
  
  2硬件設(shè)計(jì)
  
  2.1器件介紹
  
  整個(gè)系統(tǒng)由DSP(TMS320C6711),外部FLASH存儲(chǔ)器(SST39VF040)以及電源管理單元等構(gòu)成。下面主要介紹前面兩個(gè)模塊。TMS320C6711數(shù)字信號處理器是美國TI公司推出的TMS320C6000系列浮點(diǎn)DSP的一種,它采用256管腳的BGA封裝,3.3V的I/O電壓和1.8V的內(nèi)核電壓供電方式,并具有兩級cache緩存結(jié)構(gòu)和高達(dá)900MFLOPS的峰值運(yùn)算能力,可廣泛應(yīng)用于圖像處理等系統(tǒng)中。
  
  SST39VF040是SST公司推出的FLASH存儲(chǔ)器,該器件十分適合用作外擴(kuò)存儲(chǔ)器,它的存儲(chǔ)容量為4MB,采用3.3V單電源供電,無需額外提供高電壓即可通過一些特殊的命令字序列實(shí)現(xiàn)對各個(gè)子模塊的讀寫和擦除,并且可以重復(fù)十萬次以上,因而可通過DSP軟件編程來實(shí)現(xiàn)對它的讀寫操作,十分適合于系統(tǒng)的調(diào)試和開發(fā)。
  
  2.2硬件連接
  
  DSP訪問片外存儲(chǔ)器主要通過外部存儲(chǔ)器接口(EMIF),它不僅具有很強(qiáng)的接口能力,可以和各種存儲(chǔ)器直接接口,而且還具有很高的數(shù)據(jù)吞吐能力,最高可達(dá)1200MB/s。TMS320C6711的EMIF支持8位、16位和32位寬的所有存儲(chǔ)器,當(dāng)從這些窄位寬的存儲(chǔ)空間讀寫數(shù)據(jù)時(shí),EMIF會(huì)將多個(gè)數(shù)據(jù)打包成一個(gè)32位的值,而不必增加額外電路。TMS320C6711與SST39VF040的連接電路如圖1所示。
  
  該電路主要通過DSP的相關(guān)輸出管腳來控制FLASH的擦除和讀寫。其中,A0~A18為地址線,DQ0~DQ7為數(shù)據(jù)線,OE和WE分別為輸出使能和寫使能,CE1為片使能。由于TMS320C6711默認(rèn)的引導(dǎo)模式是從外部CE1空間的8位FLASH來引導(dǎo)裝載,所以,TMS320C6711的CE1和FLASH的片選CE相連。如果是從16位或32位FLASH引導(dǎo),則只需將HD[4:3]設(shè)置成相應(yīng)的值即可。
  
  2.3EMIF寄存器的配置
  
  由于TMS320C6000在異步接口上更加方便,因此,用戶可以靈活地設(shè)置讀寫周期以實(shí)現(xiàn)與不同速度、不同類型的異步器件的直接接口。EMIF接口由一組存儲(chǔ)器映射的寄存器進(jìn)行控制與維護(hù),包括配置各個(gè)空間存儲(chǔ)器類型和設(shè)置讀寫時(shí)序等。和異步器件接口時(shí)需配置CE空間控制寄存器,由它來控制存儲(chǔ)器的讀寫周期,本系統(tǒng)用到了CE1空間,故需要設(shè)置CE1空間控制寄存器的值。在設(shè)置CE1空間控制寄存器時(shí),應(yīng)滿足以下條件:
  
 。1)異步讀時(shí):
  
  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)異步寫時(shí):
  
  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))/tc
  
  
  
  ye
  
  以上參數(shù)可以從芯片手冊里查到,并可據(jù)此得以滿足上述條件的CE1值:CE1=1161C901h。
  
  3軟件設(shè)計(jì)
  
  引導(dǎo)裝載系統(tǒng)主要由實(shí)現(xiàn)自加載功能的定制代碼和用戶程序兩部分構(gòu)成,最后都存儲(chǔ)在外擴(kuò)SST39VF040的指定地址中。其中如何寫定制代碼是設(shè)計(jì)的重點(diǎn),它負(fù)責(zé)將中斷向量表和用戶代碼段從片外FLASH移植到其它高速存儲(chǔ)器中,并且將程序指針指向用戶代碼段的起始地址。
  
  3.1FLASH引導(dǎo)過程
  
  對于許多DSP應(yīng)用系統(tǒng),常常需要從FLASH裝載程序到DSP以便使它能夠脫機(jī)運(yùn)行。設(shè)置完芯片裝載方式后,F(xiàn)LASH引導(dǎo)裝載的具體過程如下:
  
  首先將位于外部CE1空間的FLASH(即圖1中的SST39VF040)中的程序通過EDMA自動(dòng)搬入內(nèi)部RAM的地址0處(參見圖2),實(shí)際上,盡管加載過程RAM的地址0處(參見圖2),實(shí)際上,盡管加載過程是在芯片復(fù)位信號被釋放后才開始的,但是當(dāng)芯片開始復(fù)位時(shí),就開始準(zhǔn)備上述傳輸了。用EDMA進(jìn)行的加載過程是一個(gè)單幀數(shù)據(jù)塊的傳輸過程,數(shù)據(jù)塊的大小為1kB,當(dāng)然這1kB的數(shù)據(jù)必須包括用于實(shí)現(xiàn)自加載功能的定制代碼,1kB的數(shù)據(jù)傳輸完成后,CPU退出復(fù)位狀態(tài),開始執(zhí)行地址0處的自加載功能的定制代碼,同時(shí)把其它的初始化段從FLASH拷貝到相應(yīng)的高速存儲(chǔ)器處,之后初始化C變量以換行用戶程序。
  
  3.2鏈接
  
  在鏈接自加載功能的定制代碼和其它代碼時(shí),需要特別注意該程序COFF(公共目標(biāo)文件格式)段的放置。因?yàn)橛袝r(shí)候需要對某些段制定兩個(gè)不同的地址:一個(gè)導(dǎo)入地址,一個(gè)運(yùn)行地址。導(dǎo)入地址用來決定裝載器把段的原始數(shù)據(jù)放在何處,而運(yùn)行地址就是該段代碼運(yùn)行的地方。任何對段的引用都是指它的運(yùn)行地址。因此,如果給某個(gè)段指定不同的導(dǎo)入地址和運(yùn)行地址,在程序訪問該段之前,都需要把它從導(dǎo)入地址拷貝到運(yùn)行地址處,當(dāng)然這個(gè)拷貝過程有時(shí)是自動(dòng)進(jìn)行的,有時(shí)需要人工介入,即由自加載功能的定制代碼來完成。如前面提到的1kB數(shù)據(jù)拷貝就是EDMA自動(dòng)完成的。顯然,制定兩個(gè)不同地址的目的是為了加快代碼的執(zhí)行速度。鏈接可由*.cmd文件來實(shí)現(xiàn)。代碼在鏈接在應(yīng)遵循以下原則:
  
 。1)所有代碼和初始化數(shù)據(jù)都必須有一個(gè)FLASH的導(dǎo)入地址;
  
 。2)所有非常數(shù)數(shù)據(jù)據(jù)都有一個(gè)RAM運(yùn)行地址;
  
 。3)未初始化的數(shù)據(jù)無需獨(dú)立的導(dǎo)入地址;
  
 。4)從FLASH拷貝到RAM的代碼要有一個(gè)FLASH導(dǎo)入地址和RAM運(yùn)行地址。
  
  3.3寫自加載功能的定制代碼
  
  通常1kB的定制代碼需要包括以下三個(gè)部分:
  
 。1)配置EMIF寄存器。只有正確配置了EMIF的值,它才有可能訪問外部存儲(chǔ)器FLASH和SDRAM;
  
 。2)拷貝初始化段。對于既有導(dǎo)入地址,又有運(yùn)行地址的初始化段,需要把它從導(dǎo)入地址拷貝到它的運(yùn)行地址處,處時(shí)還必須參考.map文件來確定要搬移的數(shù)據(jù)塊的大小,這些段代碼的搬移可以用匯編指令MOV來實(shí)現(xiàn),也可以用TMS320C6711的EDMA來實(shí)現(xiàn)。由于用EDMA搬移數(shù)據(jù)要對EDMA參數(shù)進(jìn)行設(shè)置,所以通常采用MOV指令來實(shí)現(xiàn);
  
  (3)轉(zhuǎn)向C程序的入口_c_int00,即跳轉(zhuǎn)到main()函數(shù)的入口處。
  
  該自加載功能的代碼如下:
  
  BOOT_SIZE.equ0x9800;待裝載代碼的大小
  
  FLASH_START.equ0x90000000;FLASH起始地址
  
  BOOT_START.equ0x0000000;L2sram起始地址
  
  EMIF_GCR.equ0x01800000;EMIF全局控制寄存器的地址
  
  EMIF_CE1.equ0x01800004;CE1空間控制寄存器的地址
  
  EMIF_CE1-8.equ0x1161C901;CE1空間控制寄存器的值
  
  .sect".boot_load"
  
  .global_boot
  
  .ref_c_int00
  
  _boot:
  
  mvklEMIF_GCR,A4
  
  mvkl0x3300,B4
  
  mvkhEMIF_GCR,A4
  
  
  
  
  mvkh0x3300,B4
  
  stwB4,*A4;配置EMF全局控制寄存器
  
  mvk1EMIF_CE1,A4
  
  mvk1EMIF_CE1-8,B4
  
  mvkhEMIF_CE1,A4
  
  mvkhEMIF_CE1-8,B4
  
  stwB4,*A4;配置CE1空間控制寄存器
  
  mvklBOOT_START+1024,A4;待搬移數(shù)據(jù)的目標(biāo)地址
  
  mvklFLASH_START+1024,B4;待搬移數(shù)據(jù)的源地址
  
  mvkhBOOT_START+1024,A4
  
  mvkhFLASH_START+1024,B4
  
  zer0A1
  
  _boot_loop1:數(shù)據(jù)搬移
  
  ldb*B4++,B5
  
  mvklBOOT_SIZE,B6
  
  add1,A1,A1
  
  mvkhBOOT_SIZE,B6;B6為待搬移數(shù)據(jù)塊大小,可根據(jù)實(shí)際情況來修改
  
  cmpltA1,B6,B0
  
  nop
  
  stbB5,*A4++
  
  [B0]b_boot_loop1
  
  nop5
  
  mvk1.S2_c_init00,B0
  
  mvkh.S2_c_int00,B0
  
  B.S2B0;轉(zhuǎn)向C程序的入口
  
  nop5
  
  3.4FLASH編程
  
  建立好了上述定制代碼段、用戶程序段、中斷向量表和鏈接命令文件后,便可利用TI公司的DSP集成開發(fā)環(huán)境CCS進(jìn)行編譯、調(diào)試及鏈接,之后生成的目標(biāo)文件*.out就是DSP能夠識別的COFF格式。為了使系統(tǒng)能夠脫機(jī)運(yùn)行,需要把該目標(biāo)文件的代碼寫入FLASH中,往FLASH中寫入目標(biāo)代碼可以采用以下兩種方法:
  
  (1)用硬件仿真器XDS510/560通過JTAG口對FLASH進(jìn)行在線編程。此時(shí)需要把*.out文件數(shù)據(jù)放入緩沖存儲(chǔ)器,然后按照FLASH芯片手冊提供的編程格式把緩沖存儲(chǔ)器里的數(shù)據(jù)寫入FLASH。
  
 。3)利用編程器進(jìn)行編程。由于編程器不支持*.out文件模式,不能直接寫入FLASH中,所以必須將*.out文件轉(zhuǎn)換成編程器可讀入的*.hex格式,這可以通過CCS軟件中的轉(zhuǎn)換工具h(yuǎn)ex6x來實(shí)現(xiàn),轉(zhuǎn)換時(shí)要注意hex.cmd文件的寫法,而且整個(gè)文件轉(zhuǎn)換過程是在DOS提示符下完成的。
  
  4結(jié)論
  
  利用上述方法可使系統(tǒng)在脫機(jī)狀態(tài)下實(shí)現(xiàn)引導(dǎo)裝載,本次實(shí)驗(yàn)所用的用戶代碼段的功能是利用DSP的多通道緩沖串口發(fā)送一個(gè)字符串給PC機(jī)的RS232口。按照前面的方法寫好定制代碼段、用戶程序段、中斷向量表和鏈路命令文件并進(jìn)行編譯、鏈接、格式轉(zhuǎn)換以及寫入FLASH之后,系統(tǒng)就可以實(shí)現(xiàn)脫機(jī)運(yùn)行了。這樣,給DSP系統(tǒng)加電后,就可以通過串行口調(diào)試軟件在PC機(jī)上接收到DSP所發(fā)送的字符串以證明引導(dǎo)裝載成功。由于用戶代碼段也可以被其它程序代替,因此,本文設(shè)計(jì)的引導(dǎo)裝載系統(tǒng)其有一定的通用性。
  
  
  
  

【TMS320C6711的FLASH引導(dǎo)裝載系統(tǒng)研究與設(shè)計(jì)】相關(guān)文章:

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

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

TMS320VC5402的并行引導(dǎo)裝載方案的研究與設(shè)計(jì)08-06

C6202 ROM引導(dǎo)裝載方式的研究08-06

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

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

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

產(chǎn)品形象設(shè)計(jì)及評價(jià)系統(tǒng)研究08-06

TMS320VC5402外部并行引導(dǎo)裝載方法的研究08-06