單片機的FLASH引導裝載系統(tǒng)設計
前言
本文引用地址:http://www.ex-cimer.com/article/86734.htmDSP系統(tǒng)的引導裝載是指在系統(tǒng)加電時,由DSP將一段存儲在外部非易失性存儲器中的代碼移植到內部高速存儲器單元并執(zhí)行的過程。這種方式即可利用外部存儲單元擴展DSP本身有限的ROM資源,又能充分發(fā)揮DSP內部資源的高速效能。因此,引導裝載系統(tǒng)的性能直接關系到整個DSP系統(tǒng)的可靠性和處理速度,是DSP系統(tǒng)設計中必不可少的重要環(huán)節(jié)。在裝載系統(tǒng)中,外部非易失性存儲器和DSP的性能尤為重要。FLASH是一種高密度、非易失性的電可擦寫存儲器,而且單位存儲比特的價格比傳統(tǒng)EPROM要低。為此,本文介紹了TMS320C6713浮點DSP芯片和SST公司提供的SST39VF400A FLASH存儲器的基本特點,給出了使用該FLASH存儲器設計和實現(xiàn)完整的TMS320C6713 DSP引導裝載系統(tǒng)的具體方法。
1 硬件設計
1.1 主要芯片介紹
DSP自動引導裝載系統(tǒng)主要使用DSP芯片(TMS320C6713)和外擴存儲器(SST39VF400A)兩種芯片來實現(xiàn)。其中TMS320C6713是一款高性能的32位浮點DSP,適用于專業(yè)音頻信號處理。該芯片的內部結構是在TMS320C62XX的基礎上加以改進制成的,其內部集成了多個功能單元,并采用了先進的VLIW體系結構及流水線技術;它采用3.3 V的I/O電壓和1.8 V的內核電壓供電方式,并具有兩級cache緩存結構。除此之外,它還有以下兩個主要特點: 第一是運行速度快。德州儀器公司(TI)推出的這一款300 MHz的TMS320C6713數字信號處理器(DSP)的處理速度高達1800 MFLOPS。TMS320C6713可以使用的工作時鐘和對應指令周期表如表1所列。
其次是精度高。TMS320C6713有三個因素影響著浮點格式的內在高精度。首先,浮點DSP的24位I/O字長在整數與實數值方面可實現(xiàn)比定點器件中常用的16位字長更高的精確度。第二.取冪大幅提高了應用可用的動態(tài)范圍,較大的動態(tài)范圍對處理極大數據集以及難以方便預計數據集范圍的情況相當重要。第三,硬件內部的浮點數據表示法比定點器件更為精確,這就保證了最終結果的更高精確度。
SST39VF400A是SST公司推出的FLASH存儲器。該器件十分適合用作外擴存儲器,它的存儲容量為4 MB,采用3.3 V單電源供電,因而無需額外提供高電壓即可通過一些特殊的命令字序列來實現(xiàn)對各個子模塊的讀寫和擦除。并可重復十萬次以上,此外,還可通過DSP編程來實現(xiàn)對它的讀寫操作,十分適合于系統(tǒng)的調試和開發(fā)。
1.2 系統(tǒng)硬件接口設計
DSP訪問片外存儲器主要通過外部存儲器接口(EMIF)完成。它不僅具有很強的接口能力(可以和各種存儲器直接接口),而且具有很高的數據吞吐能力(高達1 200 MB/s)。TMS320C6713的EMIF能支持8位、16位和32位寬的所有存儲器,當從這些窄位寬的存儲空間讀寫數據時,EMIF會將多個數據打包成一個32位的值,而不必增加額外電路。TMS320C6713與SST39VF400的接口電路設計如圖1所示。該電路主要通過DSP的相關輸出管腳來控制FLASH的擦除和讀寫。其中,A0~A19為地址線,DQ0~DQ15為數據線,OE和WE分別為輸出使能和寫使能,CE1為片使能。由于TMS320C6713默認的引導模式是從外部CE1空間的16位FLASH來引導裝載,所以,TMS320C6713的CE1和FLASH的片選CE相連。
2 軟件設計
本引導裝載系統(tǒng)主要由用戶應用程序和FBTC (the FlashBurn Target Component)程序兩部分構成,圖2所示是基于CCS的Flash存儲器燒寫系統(tǒng)框圖。其中,用戶程序除了要完成用戶設計要求外,還要對DSP板上的EMIF寄存器進行設置;FBTC程序則包括FLASH存儲器燒寫算法、初始化操作、地址映射等。
2.1 用戶程序設計
用戶可根據設計要求及實際算法編寫用戶主程序。除此之外,用戶還要根據自己的目標板上存儲器分配進行配置。TMS320C6713芯片上電后,若選擇從EMIF引導程序,DSP則自動將位于地址空間CE1(0x90000000~0x9FFFFFFF)開頭的1KB代碼傳輸到地址空間0處。它的數據傳輸采用默認時序,用戶可以選擇外部程序存儲器的寬度(8位/16位/32位),然后由EMIF自動將幾次讀人的數據合成為32位數據。傳輸由DSP中的ED-MA通道以單幀形式自動進行。傳輸完成后,程序從地址0處開始運行。因此,要在TMS320C6713中實現(xiàn)基于FLASH的自引導功能,必須將FLASH配置在DSP的CE1地址空間中。
在這里,用戶要編寫的EMIF配置文件是c6713 emif.s62,其程序設計代碼如下:
事實上,除了要對EMIF進行配置外,用戶還必須在鏈接文件中為某些段制定兩個不同的地址:一個是導入地址,一個是運行地址。導入地址用來決定裝載器把段的原始數據放在何處,而運行地址就是該段代碼運行的地址。制定兩個地址的目的是為了加快代碼執(zhí)行速度。它們的鏈接可由*.cmd文件來實現(xiàn)。對存儲器的設置如下:
IRAM:origin=00000000h length="0000FA00h" (內部RAM)
FLASH_BOOT:origin=0x90000000 length="00000400h" (存儲自舉代碼)
FLASH_REST:origin=0x90000400 length="0001fc00h" (存儲主程序代碼等)
在完成用戶主程序、EMIF配置文件、鏈接命令文件后,就可利用TI公司的DSP集成開發(fā)環(huán)境CCS進行編譯、調試及鏈接,以生成用戶應用程序的目標文件*.out。
評論