DSP FLASH引導(dǎo)裝載系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
DSP FLASH引導(dǎo)裝載系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
DSP FLASH引導(dǎo)裝載系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
DSP FLASH引導(dǎo)裝載系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
DSP FLASH引導(dǎo)裝載系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、DSP+FLASH引導(dǎo)裝載系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)                摘要:介紹了利用DSP編程實(shí)現(xiàn)對(duì)FLASH的讀寫操作,設(shè)計(jì)并實(shí)現(xiàn)子一個(gè)引志裝載系統(tǒng)的模型,給出了一個(gè)簡單的測(cè)試用的實(shí)例。整個(gè)方案有較大的靈活性和實(shí)用性。        關(guān)鍵詞:數(shù)字信號(hào)處理器 FLASH存儲(chǔ)器 引導(dǎo)裝載    在一些脫機(jī)運(yùn)行的DSP系統(tǒng)中,

2、用戶代碼需要在加電后自動(dòng)裝載運(yùn)行。DSP系統(tǒng)的引導(dǎo)裝載(Bootload)是指在系統(tǒng)加電時(shí),DSP將一段存儲(chǔ)在外部的非易失性存儲(chǔ)器的代碼移植到內(nèi)部的高速存儲(chǔ)器單元中去執(zhí)行。這樣既利用了外部的存儲(chǔ)單元擴(kuò)展DSP本身有限的ROM資源,又充分發(fā)揮了DSP內(nèi)部資源的效能。盡管用戶代碼在一段時(shí)間相對(duì)是固定的,但是如果直接將其掩膜到內(nèi)部ROM中去的話,一方面受容量以及價(jià)格的限制,另一方面則在系統(tǒng)代碼級(jí)上顯得不是很靈活方便。FLASH是一種高密度、非易失性的電可擦寫存儲(chǔ)器,而且單位存儲(chǔ)比特的價(jià)格比傳統(tǒng)的EPROM要低,十分適合于低功耗、小尺寸和高性能的便攜式系統(tǒng)。除了可以采用專用的硬件編程器把代碼灌入FLA

3、SH中之外,也可以利用現(xiàn)成的DSP通過軟件編程來實(shí)現(xiàn)同樣的功能。本文論述的正是如何通過DSP軟件編程來實(shí)現(xiàn)對(duì)FLASH的讀寫操作,并介紹一個(gè)簡單的系統(tǒng)引導(dǎo)裝載方案的實(shí)現(xiàn)。    1 系統(tǒng)描述    本系統(tǒng)由DSP(TMS320VC5410)及外部的FLASH(M29W400T)以及相關(guān)的電源管理單元等構(gòu)成。DSP與FLASH的連接如圖1所示。DSP與FLASH是主從關(guān)系,由DSP的相關(guān)輸出管腳控制FLASH的擦除和讀寫。其中,A0D15為數(shù)據(jù)線,/MSTRB為存儲(chǔ)選通信號(hào),R/W是讀寫脈沖信號(hào),/OE和/WE分別為

4、讀使能和寫使能,/CE為片使能,/BYTE為8位或16位數(shù)據(jù)模式選擇(圖中接高電壓為16位模式)。FLASH用于存放引導(dǎo)程序段和用戶代碼,由DSP軟件編程來寫入。當(dāng)系統(tǒng)脫機(jī)加電時(shí),DSP首先從外部FLASH指定的引導(dǎo)程序段的起始位置處開始執(zhí)行引導(dǎo)裝載。所謂引導(dǎo)裝載,就是將原先存儲(chǔ)在FLASH中的用戶代碼移植到DSP內(nèi)部的高速執(zhí)行執(zhí)行,然后將程序指針設(shè)置為用戶代碼的起始地址。這樣,接下來就可以利用DSP資源高速執(zhí)行用戶代碼了。2 DSP對(duì)FLASH的操作    2.1 DSP及FLASH簡介    TMS320VC5

5、410是TI公司的C54x系列的定點(diǎn)DSP,具有低功耗和高速度,常用于便攜式系統(tǒng)開發(fā)。其內(nèi)部在座資源包括256Kb的可掩膜RO鳳及可高速運(yùn)行的128Kb的DARAM和896Kb的SARAM。ROM中固化了TI提供引導(dǎo)裝載代碼,方案采用自編的引導(dǎo)程序。    ST公司的M29W400系列的FLASH容量為4Mb,分為11個(gè)不同大小的塊結(jié)構(gòu),支持8位或16位操作模式。通過特殊的命令字序列可以對(duì)每一塊獨(dú)立進(jìn)行擦除和讀寫。與以往的FLASH相比,它由外部單電壓供電,無需額外提供高電壓即可實(shí)現(xiàn)擦除及寫入,因而在系統(tǒng)設(shè)計(jì)上無需考慮特殊的電平匹配。本方案采用16位模式

6、。    2.2 地址映射方式    由于用DSP操作FLASH,必然涉及到FLASH的實(shí)際地址在DSP中的映射方式。TMS320VC5410的地址空間如圖2所示,包括數(shù)據(jù)空間和程序空間,具體的映射方式由DSP內(nèi)部的一些寄存器決定。它使用頁面擴(kuò)展機(jī)制,最多可以尋址8192Kb的程序空間。假設(shè)FLASH的起始地址0x0000和DSP的起始地址0x0000重合,那么FLASH中只有對(duì)應(yīng)于DSP外部空間的那部分地址,才是DSP可見的。比如,本方案中采用微處理器模式(MP=1)且OVLY=1時(shí),則DSP第0頁程序空間中可見

7、的FLASH的地址范圍為0x80000xFFFF。    在擦除或讀寫FLASH之前,必須先執(zhí)行相應(yīng)的命令字序列,即在指定的FLASH地址處寫入指定的指令代碼。而整個(gè)FLASH地址空間并非和FSP的地址空間一一對(duì)應(yīng),所以需要考慮地址的重映射。    現(xiàn)以對(duì)FLASH寫入為例。未考慮地址重映射時(shí),命令字序列如下所示:    Flash Write(0x5555L,0x00AA);/1st cycle    Flash Write(0x2A

8、AAL,0x0055);/2nd cycle    Flash Write(0x5555L,0x00A0);/Program command    Flash Write(myaddress,mydata);/put mydata into myaddress    由圖2可知,當(dāng)MP=1和OVLY=1時(shí),F(xiàn)LASH地址0x5555L和0x2AAAL在DSP中位于外部空間之外,是不可見的。這樣DSP執(zhí)行上述語句時(shí),根本沒有對(duì)FLASH進(jìn)行相應(yīng)的操作,從而導(dǎo)致即使FLASH地址

9、myaddress是DSP可見的,也無法實(shí)現(xiàn)數(shù)據(jù)寫入的功能。    仔細(xì)分析FLASH的命令字序可知,前三句命令字序列中真正起作用的地址位是A0A14,而高地址位A15A17可以是任意值。于是考慮加一個(gè)偏移量0x8000,使得重映射后的FLASH地址在DSP中是可見的。修改后的代碼如下所示:    #define OFFSET 0x8000    Flash Write (0x5555L+OFFSET),0x00AA);/1st cycle   

10、 Flash Write(0x2AAAL+OFFSET),0x0055);/2 nd cycle    Flash Write(0x5555L+OFFSET),0x00A0);/Program command    Flash Write(myaddress,mydata);/put mydata into myaddress    這樣,在DSP中就可以對(duì)外部FLASH進(jìn)行寫入操作了,前提是FLASH地址myaddress在DSP中可見。擦除和讀操作也要對(duì)照?qǐng)D2作

11、類似的地址重映射,不一一累述。    2.3 擦除和讀寫過程描述    在DSP將數(shù)據(jù)寫入FLASH之前,先要?jiǎng)h除數(shù)據(jù)所在塊,然后才能重新寫入。擦除和寫操作之前都要執(zhí)行相應(yīng)的命令字序列,而讀操作則可以直接進(jìn)行。而且要寫入的數(shù)據(jù)部分應(yīng)為引導(dǎo)程序段以及用戶代碼是經(jīng)過編譯、連接后的目標(biāo)代碼,且為FLASH可識(shí)別的HEX格式。3 引導(dǎo)裝載模型設(shè)計(jì)    3.1 引導(dǎo)裝載原理    加電前,DSP設(shè)置為微處理器模式(MP=1)。加電后,DSP首先

12、執(zhí)行0xFF80處的中斷向量表起始處的跳轉(zhuǎn)命令,轉(zhuǎn)向0xF800處的引導(dǎo)程序段并實(shí)現(xiàn)代碼移植功能。完畢后,再次跳轉(zhuǎn)到移植后的用戶程序段的起始地址并執(zhí)行之。    3.2 邏輯功能分塊    引導(dǎo)裝載系統(tǒng)包括引導(dǎo)程序段、用戶程序段、中斷向量表和連接命令文件四部分。引導(dǎo)程序段負(fù)責(zé)將用戶程序段和中斷向量表裝載到目標(biāo)地址,用戶程序段是實(shí)現(xiàn)用戶系統(tǒng)功能的核心代碼,中斷向量表包括加電后的跳轉(zhuǎn)處理和中斷服務(wù)程序的入口,連接命令文件則是分配各個(gè)程序段在DSP地址空間中的位置。    3.3

13、具體代碼實(shí)現(xiàn)    引導(dǎo)程序段(load.asm)如下:    .def load_start    .sect "load_prg"    load_start:    ssbx intm ;關(guān)中斷    rsbx sxm ;符號(hào)擴(kuò)展模式設(shè)置為0    ld #0,dp ;定義數(shù)據(jù)頁指針為0

14、60;   nop    nop    nop    ld #0ff80h,a ;移植中斷向量表,0xff80為中斷向量表的舊起始地址    stm #VECT_NEW,ar1 ;VECT_NEW表示中斷向量表的新起始地址    rpt #(VECT_LEN-1) ;VECT_LEN表示中斷向量表的長度    reada *ar1+    nop    ld #M

溫馨提示

  • 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)論