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