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