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