TMS320C54x的加載引導(dǎo) TMS320C5402.doc_第1頁
TMS320C54x的加載引導(dǎo) TMS320C5402.doc_第2頁
TMS320C54x的加載引導(dǎo) TMS320C5402.doc_第3頁
TMS320C54x的加載引導(dǎo) TMS320C5402.doc_第4頁
TMS320C54x的加載引導(dǎo) TMS320C5402.doc_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

TMS320C54x的加載引導(dǎo) TMS320C5402文章發(fā)布人:gxy共53人閱讀文字大?。?大 中 小 文字背景色: 摘 要:加載引導(dǎo)是TI公司的DSPs系統(tǒng)設(shè)計中必不可少的重要環(huán)節(jié)。文章對TMS320C54x加載引導(dǎo)的概念、方法及特點做了詳細(xì)的闡述,同時以TMS320C5402的16位并行加載引導(dǎo)方式為例,給出了加載引導(dǎo)設(shè)置文件的程序代碼和所生成的引導(dǎo)表文件。 關(guān)鍵詞:加載引導(dǎo);數(shù)字信號處理;TMS320C54x 1前言TMS320C54x是TI公司推出的定點系列數(shù)字信號處理芯片,它具有運算速度高、CPU結(jié)構(gòu)優(yōu)化、功耗低和智能化外設(shè)等特點,特別適用于實時嵌入式系統(tǒng)的開發(fā),因此,它已成為數(shù)字產(chǎn)品設(shè)計中低成本,低功耗、高性能的數(shù)字信號處理芯片的首選,在便攜式儀器、消費類電子、醫(yī)療設(shè)備等領(lǐng)域得到廣泛的應(yīng)用。TMS320C54x的加載引導(dǎo)(BOOTLOAD)方式可使系統(tǒng)在上電時將代碼從片外加載到程序區(qū),從而允許開發(fā)者事先將程序代碼放在外部低速的非易失性存儲器件中以便快速取址、譯址和執(zhí)行。開發(fā)設(shè)計人員可以用不同的控制信號(如中斷、外部標(biāo)志(XF)、通用輸出(BIO)等)來選擇不同的加載引導(dǎo)方式以滿足設(shè)計需求。2加載引導(dǎo)(BOOTLOAD)方式在上電復(fù)位后,DSP只有處于微計算機(jī)狀態(tài)即MP/MC為零時才能進(jìn)入加載引導(dǎo)過程。TI公司已在DSP芯片內(nèi)部ROM的OF800H-OFCOOh中固化了一段加載引導(dǎo)程序(BOOTLOADER),其作用是先根據(jù)相關(guān)控制信號的不同狀態(tài)來確定采用何種加載引導(dǎo)方式,然后將代碼從外部加載到程序區(qū),最后再將程序入口地址賦給程序指針。在這段程序的開始,還應(yīng)對CPU狀態(tài)寄存器進(jìn)行初始化設(shè)置,包括屏蔽中斷(INTM1)、內(nèi)部DARAM映射到程序/數(shù)據(jù)區(qū)(OVLY1)、程序/數(shù)據(jù)區(qū)讀寫加7個等待周期等設(shè)置。為了滿足不同系統(tǒng)的需求,TMS320C54x有多種加載引導(dǎo)方式。各種加載引導(dǎo)的功能如下:主機(jī)接口引導(dǎo)主機(jī)接口(HPI)是TI公司DSP的特色之一,即DSP作為協(xié)處理器將片內(nèi)DRAM共享以便讓其它智能器件(比如單片機(jī)或另外的DSP)作為主機(jī)訪問,從而提供一種方便快捷的通訊聯(lián)系方式。在主機(jī)接口引導(dǎo)方式下,首先將代碼通過主機(jī)接口下載到DSP片內(nèi)存儲器中,然后,DSP再從數(shù)據(jù)區(qū)007FH提供的地址開始執(zhí)行程序。8位/16位并行引導(dǎo)并行引導(dǎo)就是以并行方式從外部讀取引導(dǎo)表數(shù)據(jù),同時根據(jù)該表的內(nèi)容加載代碼并執(zhí)行。并行引導(dǎo)表中通常包括要下載的代碼段、各代碼段的目的地址、下載完成后程序執(zhí)行的起始地址以及其它一些設(shè)置信息。8位/16位標(biāo)準(zhǔn)串行引導(dǎo) 串行引導(dǎo)就是通過DSP的多通道緩沖串口(McBSP)在標(biāo)準(zhǔn)模式下從外部讀取引導(dǎo)表數(shù)據(jù)同時根據(jù)該表的內(nèi)容加載代碼然后執(zhí)行。其中McBSP0支持16位,McBSP1支持8位。8位串行EEPROM引導(dǎo)該模式通過DSP的McBSP1在時鐘停止模式(SPI)下從串行EEPROM中讀取引導(dǎo)表數(shù)據(jù),同時根據(jù)該表的內(nèi)容下載代碼然后執(zhí)行。8位/16位IO引導(dǎo)在IO引導(dǎo)模式下,加載引導(dǎo)程序首先通過外部標(biāo)志(XF)和通用輸出來(BIO)實現(xiàn)并行的異步握手協(xié)議,然后再從IO端口0000h讀取引導(dǎo)表數(shù)據(jù),同時根據(jù)該表的內(nèi)容下載代碼并執(zhí)行。加載引導(dǎo)程序(BOOTLOADER)允許多代碼段加載,且該加載不占用連續(xù)地址空間。另外,在并口和IO加載引導(dǎo)方式下,加載引導(dǎo)程序(BOOTLOADER)還會根據(jù)引導(dǎo)表的設(shè)置對DSP的SWWSR、BSCR寄存器進(jìn)行設(shè)定。3加載引導(dǎo)(BOOTLOAD)的執(zhí)行當(dāng)加載引導(dǎo)程序完成初始化后,便可執(zhí)行一系列的檢測操作以確定采用哪種加載引導(dǎo)方式。其檢測順序如下: (1)主機(jī)接口加載引導(dǎo)方式; (2)8位串行EEPROM加載引導(dǎo)方式; (3)16位并行加載引導(dǎo)方式; (4)8位并行加載引導(dǎo)方式; (5)MCBSP1標(biāo)準(zhǔn)串行加載引導(dǎo)方式(8位); (6)MCBSP0標(biāo)準(zhǔn)串行加載引導(dǎo)方式(16位);(7)IO加載引導(dǎo)方式;(8)主機(jī)接口加載引導(dǎo)方式。圖1給出了DSP加載引導(dǎo)方式的檢測過程。當(dāng)系統(tǒng)檢測一遍后,若無有效加載引導(dǎo)方式被選中,加載引導(dǎo)程序?qū)⒅匦聠硬⒗^續(xù)檢測,但此時是從標(biāo)準(zhǔn)串行加載引導(dǎo)方式開始而并不是檢測所有的引導(dǎo)方式。31主機(jī)接口加載引導(dǎo)一般在DSP芯片復(fù)位后,首先判斷是否選擇主機(jī)接口引導(dǎo)方式。具體方式是加載引導(dǎo)程序先將數(shù)據(jù)區(qū)007Fh清零并發(fā)出主機(jī)中斷,然后監(jiān)測中斷標(biāo)志寄存器(IFR)中的外部中斷2(INT2),此時若有INT2發(fā)生,則認(rèn)為主機(jī)接口引導(dǎo)方式被唯一選中并進(jìn)入該引導(dǎo)方式。否則,加載引導(dǎo)程序還會檢查其它引導(dǎo)方式,包括主機(jī)方式。為了適時地觸發(fā)INT2外部中斷,可以將主機(jī)中斷(HINT)和外部中斷2(INT2)直接連在一起,或者在DSP復(fù)位30個時鐘周期內(nèi)觸發(fā)一個有效的外部中斷(INT2)。進(jìn)入主機(jī)接口引導(dǎo)方式后,主機(jī)就可以向DSP加載代碼,直到加載結(jié)束,同時在DSP數(shù)據(jù)區(qū)的007Fh寫入DSP程序開始執(zhí)行位置。而加載引導(dǎo)程序則一直監(jiān)測007Fh的數(shù)據(jù)是否有改變,如果數(shù)據(jù)發(fā)生非零改變,則結(jié)束加載引導(dǎo),同時將程序指針設(shè)為該非零值以作為程序起始地址。32串行EEPROM加載引導(dǎo)若未進(jìn)入主機(jī)接口引導(dǎo)方式,加載引導(dǎo)程序會通過檢測外部中斷3(INT3)來判斷是否選擇串行EEPROM方式。若發(fā)現(xiàn)中斷標(biāo)志位(IFR)中的外部中斷3(INT3)有效,則進(jìn)入串行EEPROM加載引導(dǎo)方式。也就是說,在DSP復(fù)位30個時鐘周期內(nèi),如有外部中斷3(INT3)被觸發(fā),則選擇這種加載引導(dǎo)方式。為了產(chǎn)生有效的外部中斷3(INT3),可以將多通道緩沖串口(McBSP1)的傳輸引腳(BDX1)與外部中斷3(INT3)直接聯(lián)接起來。具體的連接方式如圖2中的虛線所示。有一點需要注意:那就是并非所有版本的TMS320C5402都完全支持這種加載引導(dǎo)方式。33并行加載引導(dǎo)并行加載引導(dǎo)方式支持8位和16位數(shù)據(jù)寬度,也就是說外部非易失性存儲設(shè)備可以是8位或16位。在加載過程中,軟件等待寄存器(SWWSR)和邊界切換控制寄存器會依據(jù)引導(dǎo)表中的設(shè)置進(jìn)行配置,但此設(shè)置只有在引導(dǎo)加載結(jié)束時才起作用。 首先,加載引導(dǎo)程序可從IO空間或數(shù)據(jù)空間的0FFFFh讀取引導(dǎo)表的地址(范圍為04000h0FFFFh)。相比而言,從數(shù)據(jù)空間讀取更為方便,因為可以將引導(dǎo)表數(shù)據(jù)和它的起始地址放在一個外部非易失性存儲設(shè)備中。然后按照得到的引導(dǎo)表起始地址讀取數(shù)據(jù)。如果讀到10AAh則是16位數(shù)據(jù)寬度,并開始加載引導(dǎo);而如果讀到xx08h則是8位數(shù)據(jù)寬度,此時系統(tǒng)將繼續(xù)讀下一個數(shù)據(jù),只有讀到xxAAh才能進(jìn)入加載引導(dǎo)。34標(biāo)準(zhǔn)串口加載引導(dǎo)實際上,TI公司的DSP也可以通過多通道緩沖串口(McBSP)的標(biāo)準(zhǔn)模式來加載引導(dǎo),其中McBSP0是8位數(shù)據(jù)寬度,McBSP1是16位數(shù)據(jù)寬度。當(dāng)判斷是否選擇標(biāo)準(zhǔn)串口引導(dǎo)方式時,加載引導(dǎo)程序先將串口配置為TMS320C54的標(biāo)準(zhǔn)串口,并將DSP的外部標(biāo)志位(XF)置低以等待接收數(shù)據(jù),然后監(jiān)測中斷標(biāo)志寄存器,看是否有串口中斷發(fā)生,同時判斷是哪個串口(BRINT0或BRINT1)。若是串口1中斷,則讀取串口數(shù)據(jù)接收寄存器的值以進(jìn)一步判斷,如果第一個字節(jié)是08h,第二個字節(jié)是AAh則進(jìn)入8位串口引導(dǎo)方式,否則判斷是否是串口0中斷。若是串口0中斷,同樣讀取串口數(shù)據(jù)接收寄存器的值并進(jìn)一步判斷,如果是10AAh則進(jìn)入16位串口引導(dǎo)方式,否則繼續(xù)判斷是否是IO方式。35 IO加載引導(dǎo)由于在標(biāo)準(zhǔn)串行方式中,加載引導(dǎo)程序已經(jīng)把外部標(biāo)志位(XF)置低,因此,若無串口中斷發(fā)生,DSP將判斷是否選擇IO方式。IO方式是利用外部標(biāo)志位(XF)和通用輸入引腳(BIO)通過握手信號來傳輸數(shù)據(jù)的。當(dāng)XF保持“0”狀態(tài)時,表示DSP已準(zhǔn)備好進(jìn)入IO引導(dǎo)方式,此時若外部主機(jī)將通用輸入引腳(BIO)置“0”,則表示要求IO方式引導(dǎo),之后,通過DSP讀取IO地址0000h的數(shù)據(jù),并將XF置“1”以表示數(shù)據(jù)接收成功,隨后主機(jī)再將BIO置“1”,則表示一次數(shù)據(jù)傳輸?shù)慕Y(jié)束;若還有數(shù)據(jù)需要傳輸,可使XF再次置“0”以表示準(zhǔn)備接收數(shù)據(jù),然后由主機(jī)將數(shù)據(jù)準(zhǔn)備好后將BIO置“0”,以使得DSP能夠再次讀取IO地址0000h的數(shù)據(jù),之后,系統(tǒng)再將XF置“1”,隨之主機(jī)再次將BIO置“1”,則表示又完成一次數(shù)據(jù)傳輸;此過程周而復(fù)始,直到引導(dǎo)表的數(shù)據(jù)全部傳輸完畢。DSP從IO讀回的第一個數(shù)據(jù)如果是10AAh,則以16位數(shù)據(jù)寬度傳輸引導(dǎo)表;如果第一個是08h,第二個是AAh,則以8位數(shù)據(jù)寬度傳輸引導(dǎo)表。4加載引導(dǎo)表加載引導(dǎo)表是將通用目標(biāo)文件(OUT)按照加載引導(dǎo)方式設(shè)置生成十六進(jìn)制文件(HEX),也就是生成固定格式的數(shù)據(jù)流。表1給出了16位模式時源程序數(shù)據(jù)流的生成結(jié)構(gòu)。加載引導(dǎo)表的生成步驟如下:(1)編譯程序代碼,生成目標(biāo)文件。應(yīng)當(dāng)注意:對于TMS320C5402,需加編譯選項v548,否則最后生成的將是早期TMS320C54x的引導(dǎo)表。(2)鏈接目標(biāo)文件,生成通用目標(biāo)文件(COFF)。 (3)根據(jù)加載引導(dǎo)設(shè)置生成十六進(jìn)制文件。實際上,有時也可將加載引導(dǎo)設(shè)置成一個文件。5應(yīng)用舉例下面給出TMS320C5402通過16位并口方式從FLASH(AT29LV1024)中加載引導(dǎo)程序的應(yīng)用舉例,其編譯鏈接的細(xì)節(jié)這里不再贅述。假設(shè)已經(jīng)生成了通用目標(biāo)文件MAINOUT,則加載引導(dǎo)設(shè)置文件OUT2HEXCMD如下:這樣利用十六進(jìn)制轉(zhuǎn)化工具在命令格式下執(zhí)行:HEX500 OUT2HEXCMD,即可生成加載引導(dǎo)表文件MAINHEX。圖3所示是生成的引導(dǎo)表文件。它的數(shù)據(jù)流結(jié)構(gòu)符合前面所說的格式。應(yīng)當(dāng)注意:在調(diào)試階段,程序入口地址每編譯一次都有可能發(fā)生變化,所以每次編譯完都應(yīng)根據(jù)編譯生成的存儲映射文件(MAP)來更改加載引導(dǎo)設(shè)置文件(CMD)中e選項后的程序入口參數(shù)。實際上,如果中斷向量表不放在與片上ROM可能重疊的存儲區(qū)域(比如E000h),那么,利用RESET中斷時,程序也會跳至程序入口,因此,可在加載引導(dǎo)設(shè)置文件中將程序入口參數(shù)設(shè)為E000h而不必再更改。在完成上述工作后,便可以用編程器將這個十六進(jìn)制的文件燒寫到FLASH里進(jìn)行加載引導(dǎo)了。另外,如果FLASH支持在線編程,可以先將十六進(jìn)制文件(HEX)轉(zhuǎn)化為二進(jìn)制文件(BIN),

溫馨提示

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

評論

0/150

提交評論