基于CCS的DSP片外Flash直接燒寫設(shè)計
在二級加載程序搬移表中,要嚴(yán)格按照保存的DATA段信息進(jìn)行搬移表配置,其格式如下:
其中,Length為所保存的DATA段的長度:Destination Addr為DATA段IRAM中的起始地址;Source Addr為將保存的DATA段存放于外部Flash的起始位置。在線燒寫程序中要嚴(yán)格按照此搬移表中的Source Addr值將保存的DATA段燒寫到Flash的相應(yīng)位置。有多個DATA段時,要配置相應(yīng)個數(shù)的搬移參數(shù)表。
4 Flash在線燒寫設(shè)計
將用戶程序代碼寫入Flash的方法一般有2種:①用專門的Flash編程器實現(xiàn);②根據(jù)DSP與Flash的接口,通過在線編程來實現(xiàn)。前者的主要優(yōu)點是使用方便可靠,但要求Flash只能是雙列直插等一些可插拔的封裝形式,且表面貼裝或PLCC封裝的Flash難以利用編程器實現(xiàn);后者克服了前者的缺點,使用靈活,因而在DSP系統(tǒng)中得到廣泛采用。
Flash在線燒寫操作就是將保存起來的DATA,燒寫到二級加載程序搬移表所指定位置的Flash中。在線燒寫的思想是,首先將保存起來的DATA加載到DSP的內(nèi)部RAM或系統(tǒng)的外部RAM中,再通過在線燒寫程序?qū)⒓虞d的DATA寫入到Flash中。DSP實驗板Flash采用的是AM29LV160D,根據(jù)其數(shù)據(jù)手冊分別建立擦除void ChipErase(void)和寫入Byte Write(int offsent,short data)子函數(shù)。編寫在線燒寫程序如下:
在對Flash寫操作前首先要進(jìn)行其擦除,在擦除后要指定DATA存放首地址Saddr,要燒寫到的Flash首地址FlashAddr,以及待燒寫的數(shù)據(jù)長度Length。在有多個DATA段時,程序中要進(jìn)行相應(yīng)個數(shù)的DATA段燒寫指定操作。
在線燒寫程序設(shè)計完成后,編譯將.out文件下載到DSP中,可以在擦除操作完成,開始燒寫前設(shè)置斷點,運(yùn)行完Flash擦除操作后,將保存的DATA加載到程序中指定的位置,為了確保燒寫程序的正常運(yùn)行,不能將DATA加載到燒寫程序占據(jù)的RAM空間。當(dāng)所需要燒寫的DATA全部加載完成后繼續(xù)運(yùn)行燒寫程序,即可完成Flash的在線燒寫。
基于所用到的實驗板,在Flash燒寫完成后斷電,將DSP設(shè)置為Flash啟動模式,再上電,測試到應(yīng)用程序中預(yù)先設(shè)計的運(yùn)行指示,表明Flash已燒寫加載成功,驗證了DATA方法的Flash燒寫是切實可行的。
5 結(jié)語
詳細(xì)介紹了DATA方法直接燒寫原理,如何進(jìn)行合適的COFF代碼段設(shè)置,如何保存燒寫數(shù)據(jù)DATA以及二級加載程序和在線燒寫程序的相應(yīng)設(shè)計。DATA方法容易理解,操作簡單、不易出錯,能夠簡便、快捷的完成Flash的燒寫操作,為DSP開發(fā)者提供了一條有效的Flash燒寫途徑。該方法適應(yīng)于C6000系列所有DSP,其設(shè)計思想對其他系列的DSP也提供了有益的借鑒。
評論