在仿真環(huán)境下實(shí)現(xiàn)TMS320C6000系列DSP的程序自引導(dǎo)_第1頁
在仿真環(huán)境下實(shí)現(xiàn)TMS320C6000系列DSP的程序自引導(dǎo)_第2頁
在仿真環(huán)境下實(shí)現(xiàn)TMS320C6000系列DSP的程序自引導(dǎo)_第3頁
在仿真環(huán)境下實(shí)現(xiàn)TMS320C6000系列DSP的程序自引導(dǎo)_第4頁
在仿真環(huán)境下實(shí)現(xiàn)TMS320C6000系列DSP的程序自引導(dǎo)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

在仿真環(huán)境下實(shí)現(xiàn)TMS320C6000系列DSP的程序自引導(dǎo)摘要:介紹了TMS320C6000系列DSP在仿真環(huán)境下對(duì)閃速存儲(chǔ)器(FLASH)的C語言編程方法,同時(shí)根據(jù)這種DSP的程序自引導(dǎo)機(jī)制(bootloader),介紹了從FLASH進(jìn)行引導(dǎo)的新途徑,從而為TMS320C6000系列DSP的開發(fā)提供了一種新的思路。

關(guān)鍵詞:TMS320C6000;FLASH;bootloader開發(fā)DSPP系統(tǒng)應(yīng)應(yīng)用板,最最終要脫脫離仿真真器而獨(dú)獨(dú)立運(yùn)行行,這時(shí)時(shí)就需要要一個(gè)能能在斷電電后保存存程序及及初始化化數(shù)據(jù)的的存儲(chǔ)器器。系統(tǒng)統(tǒng)上電時(shí)時(shí),由引引導(dǎo)程序序?qū)ⅲ模樱樱械膽?yīng)應(yīng)用程序序從該存存儲(chǔ)器引引導(dǎo)到DDSP應(yīng)應(yīng)用板上上的高速速存儲(chǔ)器器(如內(nèi)內(nèi)部SRRAM,SSDRAAM等)中中。由于于FLAASH具具有電信信號(hào)刪除除功能且刪除除速度快快,集成成度高,因因而已成成為此種種存儲(chǔ)器器的首選選。將用戶程序序代碼寫寫入FLLASHH的方法法有兩種種:第一一種是用用專門的的FLAASH編編程器實(shí)實(shí)現(xiàn),第第二種是是通過系系統(tǒng)微處處理器與與FLAASH的的接口來來實(shí)現(xiàn)。第第一種方方法的主主要優(yōu)點(diǎn)點(diǎn)是使用用方便可可靠,但但要求FFLASSH只能能是雙列列直插等等一些可可插拔的的封裝形形式,由由于芯片片制造工工藝的提提高,芯芯片的集集成度越越來越高高,FLLASHH正向小小型化、貼貼片式發(fā)發(fā)展,從從而使表表面貼裝裝或PLLCC封封裝的FFLASSH難以以利用編編程器編編程。第第二種方方法克服服了第一一種方法法的缺點(diǎn)點(diǎn),且使使用靈活活,因而而在DSSP系統(tǒng)統(tǒng)中的應(yīng)應(yīng)用日益益廣泛。由于FLAASH的的存取速速度較慢慢,寫入入FLAASH的的程序?qū)⒃谙到y(tǒng)統(tǒng)上電時(shí)時(shí)被DSSP裝載載到快速速的存儲(chǔ)儲(chǔ)器中運(yùn)運(yùn)行,這這個(gè)過程程稱為bboottlooadeer。不不同的DDSP有有不同的的引導(dǎo)方方式,本本文將以以TMSS3200C67713為為例來介介紹TMMS3220C660000系列的的boootlloadder方方式。

11FLLASHH的工作作方式及及在系統(tǒng)統(tǒng)編程目前,市場(chǎng)場(chǎng)上的FFLASSH型號(hào)號(hào)很多,但但工作方方式大體體相同,下下面以AAM299LV1160DD為例進(jìn)進(jìn)行介紹紹。1.1AAM299LV1160DDFLLASHH存儲(chǔ)器器簡介AM29LLV1660D是是AMDD公司生生產(chǎn)的22M×88bitt/1MM×166bittFLLASHH存儲(chǔ)器器,它的的數(shù)據(jù)寬寬度為88位、116位可可選,采采用3..3V供供電,完完全兼容容JEDDEC標(biāo)標(biāo)準(zhǔn),并并支持在在系統(tǒng)編編程,用用戶只需需向其內(nèi)內(nèi)部的命命令寄存存器寫入入命令序序列即可可實(shí)現(xiàn)部部分擦除除、全部部擦除、數(shù)數(shù)據(jù)寫入入等功能能;同時(shí)時(shí)可提供供硬件和和軟件方方法來檢檢查FLLASHH的操作作執(zhí)行情情況。

圖圖1

11.2編程方方法對(duì)FLASSH的在在系統(tǒng)編編程就是是通過一一定的編編程命令令序列來來控制FFLASSH的工工作方式式,這些些命令序序列是一一些特定定字符的的組合,只只要向FFLASSH中的的特定寄寄存器以以特定的的順序輸輸入這些些字符即即可進(jìn)入入相應(yīng)的的編程模模式。AAM299LV1160DD中的主主要命令令序列和和寫入地地址如圖圖1所示示。具體體說明如如下:●復(fù)位命令令序列::對(duì)FLLASHH中任一一地址寫寫入“FF0”,即即可實(shí)現(xiàn)現(xiàn)復(fù)位?!褡詣?dòng)選選擇模式式:此模模式主要要用于編編程器編編程時(shí),由由編程器器根據(jù)從從數(shù)據(jù)線線DQ77~DQQ0讀出出的識(shí)別別碼自動(dòng)動(dòng)配置編編程邏輯輯,當(dāng)然然也可以以通過命命令序列列在在系系統(tǒng)情況況下將自自動(dòng)選擇擇碼讀出出?!窬幊堂盍钚蛄校海撼绦蚩煽梢砸宰肿止?jié)方式式或字方方式寫入入,這主主要根據(jù)據(jù)FLAASH外外部引腳腳BYTTE的狀狀態(tài)而定定。●芯片擦除除命令序序列:FFLASSH編程程時(shí)應(yīng)先先執(zhí)行擦擦除命令令,這是是因?yàn)榫幘幊讨噶盍钪荒軐?shù)據(jù)由由1變?yōu)闉椋?,反反之則不不行?!裆葏^(qū)擦擦除命令令序列::為了編編程方便便及保護(hù)護(hù)有用數(shù)數(shù)據(jù),數(shù)數(shù)據(jù)擦除除可以只只擦除某某些無用用的扇區(qū)區(qū)。●擦除暫暫停和恢恢復(fù)命令令序列::這個(gè)命命令序列列只在進(jìn)進(jìn)行扇區(qū)區(qū)擦除時(shí)時(shí)有效,它它允許編編程者中中斷一個(gè)個(gè)扇區(qū)的的擦除操操作,接接著從沒沒有被擦擦除的扇扇區(qū)讀出出或?qū)懭肴霐?shù)據(jù)。●寫入命令令:也分分為字節(jié)節(jié)模式和和字模式式,分別別對(duì)應(yīng)FFLASSH的88位和116位工工作方式式,具體體為哪種種模式,,可由FFLASSH的BBYTEE腳的輸輸入來決決定,低低電平為為字節(jié)模模式,高高電平為為字模式式。在對(duì)FLAASH進(jìn)進(jìn)行編程程時(shí),FFLASSH提供供硬件和和軟件機(jī)機(jī)制來獲獲得FLLASHH的狀態(tài)態(tài),以確確定數(shù)據(jù)據(jù)寫入或或擦除操操作是否否完成。硬硬件方法法主要是是利用FFLASSH的外外部引腳腳RY//BY的的輸出信信號(hào)在命命令序列列的最后后一個(gè)寫寫脈沖(WWE)的的上升沿沿之后有有效。當(dāng)當(dāng)該輸出出為低電電平時(shí),,表示FFLASSH正在在編程或或擦除中中,而當(dāng)當(dāng)該輸出出腳為高高電平時(shí)時(shí),即表表示編程程或擦除除已完成成。將此此引腳與與TMSS3200C6771x系系列DSSP的AARDYY引腳相相連,即即可實(shí)現(xiàn)現(xiàn)硬件的的自動(dòng)編編程或擦擦除的完完成判斷斷。C660000系列DDSP與與FLAASH的的連線圖圖如圖22所示。軟件方法是是利用從從FLAASH數(shù)數(shù)據(jù)線讀讀取的數(shù)數(shù)據(jù)來判判斷FLLASHH的狀態(tài)態(tài),讀取取數(shù)據(jù)中中的主要要判斷位位為DQQ2、DDQ3、DDQ5、DDQ6和和DQ77,它們們之間的的相互組組合提供供了幾種種軟件判判斷狀態(tài)態(tài)的方法法,應(yīng)用用較多且且較為簡簡便的方方法是在在命令序序列寫入入后,如如果寫入入的是編編程命令令,則選選擇一個(gè)個(gè)地址,并并循環(huán)讀讀取這個(gè)個(gè)地址的的數(shù)據(jù)。若若裝置仍仍處于編編程狀態(tài)態(tài)之中,DDQ7輸輸出為寫寫入數(shù)據(jù)據(jù)的補(bǔ)碼碼,而在在編程完完成后,DDQ7輸輸出的是是所選地地址上的的正確數(shù)數(shù)據(jù)。如如果寫入入的是擦擦除命令令,那么么當(dāng)裝裝置處于于擦除狀狀態(tài)時(shí),則則DQ77輸出為為0,若若擦除完完成或擦擦除被中中斷DDQ7輸輸出為11。選擇擇地址時(shí)時(shí)應(yīng)注意意:若地地址所在在區(qū)域?qū)賹儆冢疲蹋蹋粒樱龋戎械谋1Wo(hù)區(qū)域域,則DDQ7輸輸出的FFLASSH狀態(tài)態(tài)信息有有效,有有效時(shí)間間只能持持續(xù)大約約1μss,然后后輸出正正確數(shù)據(jù)據(jù)。而擦擦除命令令擦除的的范圍如如果包括括FLAASH中中的保護(hù)護(hù)區(qū)域,那那么命令令將被忽忽略,此此時(shí)DQQ7輸出出狀態(tài)信信息有效效,持續(xù)續(xù)時(shí)間大大約1000μss。對(duì)FFLASSH的操操作有時(shí)時(shí)會(huì)出錯(cuò)錯(cuò),出錯(cuò)錯(cuò)時(shí),FFLASSH將處處于不正正常狀態(tài)態(tài),DQQ7可能能永遠(yuǎn)也也不會(huì)輸輸出地址址上的正正確數(shù)據(jù)據(jù),此時(shí)時(shí)就需讀讀?。模眩眩档妮斴敵鲂畔⑾?,若為為1則表表示操作作失敗。其其軟件流流程圖如如圖3所所示。對(duì)FLASSH的編編程既可可以用匯匯編語言言,也可可以用CC語言,以以下給出出部分CC代碼。該該程序代代碼可采采用TII公司專專門用于于TI公公司系列列DSPP編程的的CoddeCCom--posserStuudioo編程程工具進(jìn)進(jìn)行編寫寫。voideraase__flaash((shoort*fflassh_pptr)){shortt*ctrrl_aaddrr1=((shoort*)(((innt)fflassh_pptr++(0xx5555<<22));;/*此處00x5555地址址左移兩兩位,按按16位位存儲(chǔ)器器來看,本本來只需需左移一一位,但但在計(jì)算算式中地址fflassh_pptr是是先轉(zhuǎn)換換成innt型再再計(jì)算的的,而要要寫入命命令的地地址0xx5555為166位地址址,所以以需乘22,因此此應(yīng)當(dāng)再再左移一一位*//shortt*ctrrl_aaddrr2=((shoort*)(((innt)fflassh_pptr++(0xx2aaa<<22));;*ctrrl_adddr1==0x000aaa;*ctrrl_aaddrr2=00x00055;;*ctrrl_aaddrr1=00x00080;;*ctrrl_aaddrr1=00x000aa;;*ctrrl_aaddrr2=00x00055;;*ctrrl_aaddrr1=00x00010;;}voidproograam_fflassh(sshorrt**soourcce_pptrshoort*fflasshpptr,,shoortlenngthh){shorttishortt*ctrrl_aaddrr1=((shoort*)(((innt)fflassh_pptr++(0xx5555<<22));;shortt*ctrrl_aaddrr2=((shoort*)(((innt)fflassh_pptr++0x22aa<<<2)));for(ii=0;;i<llenggth;;i+++){*ctrrl_aaddrr1=00x000aa;;*ctrrl_aaddrr2=00x00055;;*ctrrl_aaddrr1=00x000a0;;*flaash__ptrr++==*soourcce_pptr}}在上面的程程序中,,對(duì)FLLASHH的命令令序列的的寫入地地址有一一個(gè)左移移指令,即即若應(yīng)寫寫入命令令的寄存存器地址址為0xx5555,實(shí)際際編程時(shí)時(shí),應(yīng)先先對(duì)0xx5555左移若若干位,然然后再對(duì)對(duì)得到的的地址寫寫入命令令。這是是因?yàn)?,TMSS3200C60000系系列DSSP為332位DDSP,它它的外部部地址總總線引腳腳的最低低位(LLSB)為為EA22,即輸輸出地址址的最低低位為實(shí)實(shí)際地址址的第22位,而而不會(huì)輸輸出第11位和第第0位,但但實(shí)際外外接的FFLASSH可以以是8位位、166位、332位不不等。如如果連接接非322位存儲(chǔ)儲(chǔ)器,在在讀數(shù)據(jù)據(jù)時(shí)DDSP的的外部存存儲(chǔ)器接接口(EEMIFF)會(huì)自自動(dòng)將實(shí)實(shí)際地址址左移若若干位,以以使外部部地址總總線引腳腳的最低低位EAA2根據(jù)據(jù)FLAASH位位數(shù)的不不同輸出出實(shí)際地地址的第第0位或或第1位位,然后后再將幾幾次讀入入的數(shù)據(jù)據(jù)合成一一個(gè)322位的值值(外接接FLAASH的的位數(shù)可可以在EEMIFF寄存器器中設(shè)置置),而而在寫數(shù)數(shù)據(jù)時(shí),,就需要要編程者者手動(dòng)進(jìn)進(jìn)行移位位,具體體方法是是外接接8位存存儲(chǔ)器時(shí)時(shí)左移22位,外外接166位存儲(chǔ)儲(chǔ)器時(shí)左左移1位位。

2用FLLASHH實(shí)現(xiàn)DDSP的的程序自自引導(dǎo)TMS3220C660000系列DDSP包包括多個(gè)個(gè)型號(hào),各各個(gè)型號(hào)號(hào)的程序序自引導(dǎo)導(dǎo)方法一一致,下下面以TTMS3320CC67113為例例來介紹紹程序自自引導(dǎo)的的實(shí)現(xiàn)過過程。2.1TTMS3320CC67113DSSP簡介介TMS3220C667133是TII公司推推出的TTMS3320CC67xxx系列列浮點(diǎn)DDSP中中最新的的一種芯芯片。TTMS3320CC67113每周周期可以以執(zhí)行88條322位指令令;支持持32//64位位數(shù)據(jù);;具有最最高2225MHHz、44.4nns指令令周期的的運(yùn)行速速度和118000MIPPS或113500MFLLOPSS的處理理能力;;同時(shí)是是有強(qiáng)大大的外設(shè)設(shè)支持能能力;外外部存儲(chǔ)儲(chǔ)器接口口(EMMIF))可以很很方便地地和SDDRAMM、SBBSRAAM、FFLASSH、SSRAMM等同步步和異步步存儲(chǔ)器器相連,116位HHPI接接口可以以和各種種處理器器如PPC、PPOWEERPCC等接接口;另另外還有有優(yōu)化的的多通道道緩存串串口和多多通道音音頻串口口(僅TTMS3320CC67113),這這些外部部接口使使設(shè)計(jì)人人員可以以很容易易實(shí)現(xiàn)自自己的應(yīng)應(yīng)用系統(tǒng)統(tǒng)。2.2TTMS3320CC67113程序序自引導(dǎo)導(dǎo)功能的的實(shí)現(xiàn)斷電時(shí)用慢慢速ROOM或FFLASSH存儲(chǔ)儲(chǔ)程序和和初始化化數(shù)據(jù),上上電后引引導(dǎo)到內(nèi)內(nèi)部或外外部快速速RAMM中運(yùn)行行是現(xiàn)在在普遍采采用的一一種設(shè)計(jì)計(jì)DSPP電路板板的方法法,該方方法可靠靠、方便便、靈活活且成本本較低。但但對(duì)于不不同的DDSP有有不同的的程序自自引導(dǎo)方方法。本本文只討討論TMMS3220C660000系列DDSP的的引導(dǎo)方方法。和以往TII公司的的DSPP(如33x、44x)采采用引導(dǎo)導(dǎo)表由固固化在DDSP內(nèi)內(nèi)部的引引導(dǎo)程序序?qū)崿F(xiàn)程程序的自自引導(dǎo)不不同,TTMS3320CC60000系列列DSPP采用的的是一種種新的引引導(dǎo)方法法,對(duì)于于TMSS3200C67713,上上電后,若若選擇從從EMIIF引導(dǎo)導(dǎo)程序,則則DSPP自動(dòng)將將位于地地址空間間CE11(0xx9000000000~~0x99FFFFFFFFF)開開頭的11kB代代碼傳輸輸?shù)降刂分房臻g00處。它它的數(shù)據(jù)據(jù)傳輸采采用默認(rèn)認(rèn)時(shí)序,用用戶可以以選擇外外部程序序存儲(chǔ)器器的寬度度(8位位/166位/332位),然然后由EEMIFF自動(dòng)將將幾次讀讀入的數(shù)數(shù)據(jù)合成成32位位數(shù)據(jù)。傳傳輸由DDSP中中的EDDMA通通道以單單幀的形形式自動(dòng)動(dòng)進(jìn)行,傳傳輸完成成后,程程序從地地址0處處開始運(yùn)運(yùn)行。因因此,要要在TMMS3220C6671xx中實(shí)現(xiàn)現(xiàn)基于FFLASSH的自自引導(dǎo)功功能,必必須將FFLASSH配置置在DSSP的CCE1地地址空間間中。以上工作均均由DSSP自動(dòng)動(dòng)完成。很很明顯,自自動(dòng)傳輸輸?shù)拇a碼并不能能滿足絕絕大多數(shù)數(shù)編程者者對(duì)代碼碼長度的的要求,因因此可在在這段代代碼中加加入數(shù)據(jù)據(jù)傳輸功功能,從從而將實(shí)實(shí)際工作作中遠(yuǎn)大大于1kkB的代代碼由FFLASSH中讀讀入到用用戶指定定的存儲(chǔ)儲(chǔ)空間,然然后再將將程序跳跳到實(shí)際際有用的的代碼處處運(yùn)行。對(duì)對(duì)FLAASH編編程并實(shí)實(shí)現(xiàn)程序序自引導(dǎo)導(dǎo)的具體體過程如如下:(1)對(duì)DDSP正正常運(yùn)行行程序的的處理CodeCommposserStuudioo(CCCS)是是TI公公司開發(fā)發(fā)的用于于DSPP產(chǎn)品的的軟件開開發(fā)工具具。由CCCS得得到的代代碼為目目標(biāo)文件件格式(CCOFFF),這這種格式式文件不不能直接接寫入FFLASSH,而而要先用用其它語語言(如如C)編編寫文件件,然后后由轉(zhuǎn)換換工具進(jìn)進(jìn)行轉(zhuǎn)化化。在COFFF格式下下,程序序被分成成很多段段(包括括程序段段、初始始化數(shù)據(jù)據(jù)段、未未初始化化數(shù)據(jù)段段、自定定義段等等),每每段都占占據(jù)連續(xù)續(xù)的存儲(chǔ)儲(chǔ)空間,段段與段之之間相互互獨(dú)立。另另外,在在COFFF文件件中,除除了段內(nèi)內(nèi)的用戶戶程序和和數(shù)據(jù)外外,還包包含一些些額外的的信息,其其中有CCOFFF文件的的版本、段段的數(shù)量量、段的的長度和和起始地地址等,分分析清楚楚這些信信息,就就可以編編寫自己己的文件件轉(zhuǎn)換工工具了。具具體方法法是:讀讀入COOFF文文件,根根據(jù)格式式分析該該文件的的內(nèi)容,再再把用戶戶程序和和數(shù)據(jù)部部分提取取出來,仍仍分成一一個(gè)個(gè)段段,并在在每個(gè)段段前加入入起始位位置和段段長度信信息,同同時(shí)在最最后一個(gè)個(gè)段的末末尾加上上結(jié)束標(biāo)標(biāo)志,最最后寫入入一個(gè)新新的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論