C6000系列DSP Flash二次加載技術(shù)研究
引言
TI公司C6000系列DSP具有強(qiáng)大的處理能力,在嵌入式系統(tǒng)中有著廣泛的應(yīng)用。由于程序在DSP內(nèi)部存儲(chǔ)器的運(yùn)行速度遠(yuǎn)大于片外存儲(chǔ)器的運(yùn)行速度,通常需要將程序從外部加載到DSP內(nèi)部運(yùn)行。由于C6000系列DSP均沒有片上非易失性存儲(chǔ)器,而最常用的方式為采用非易失Flash存儲(chǔ)器進(jìn)行程序的存儲(chǔ)和加載。然而,該系列DSP的推出是一個(gè)漸進(jìn)的過程,其芯片內(nèi)部結(jié)構(gòu)隨著上市時(shí)間的先后有著較大的不同,而TI公司沒有給出統(tǒng)一的加載方式。針對(duì)該問題,本文全面研究了不同DSP芯片的加載方法與差異,并根據(jù)這些特點(diǎn)提出了通用的二次加載方法。
1 TI公司提供的二次加載方法
TI公司的DSP芯片二次加載的原理是一致的,加載步驟如下:
①通過一次加載將二次加載程序載入DSP片內(nèi)或片外存儲(chǔ)器;
②運(yùn)行二次加載程序加載剩余的程序與數(shù)據(jù)來完成后續(xù)加載;
③跳轉(zhuǎn)到主程序入口,完成加載。
但是由于芯片內(nèi)部結(jié)構(gòu)不同,TI公司提供了不同的加載方法。根據(jù)程序與數(shù)據(jù)空間存儲(chǔ)映射的不同,主要分為兩類:分離存儲(chǔ)映射的加載方式和混合存儲(chǔ)映射的加載方式。
1.1 分離存儲(chǔ)映射的加載方式
在TI公司最初推出的C6000 DSP中,程序與數(shù)據(jù)空間采用分離的存儲(chǔ)映射方式,代表芯片為C6201和C6701。在這種方式下,程序空間與數(shù)據(jù)空間是分離的,片內(nèi)程序空間只能在第一次加載時(shí)被寫入;而在二次加載的過程中,只能對(duì)片內(nèi)數(shù)據(jù)空間或外部存儲(chǔ)空間進(jìn)行訪問。而且運(yùn)行第一次加載程序時(shí),就要將存放在Flash中首64 KB的數(shù)據(jù)全部搬入DSP程序空間中,而數(shù)據(jù)空間就需要二次加載來完成。二次加載的流程如圖1所示。
從圖1中可知,采用這種加載方式存在如下問題:
①對(duì)程序大小有限制,二次加載程序與主程序總和不能大于64 KB,無法完成正確的加載。
②加載方式較不靈活,DSP內(nèi)部的程序空間在第一加載后就無法更改,二次加載一般只能加載數(shù)據(jù)。
評(píng)論