機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
TMS320C54x的加載引導(dǎo)
TMS320C54x的加載引導(dǎo)
 更新時(shí)間:2009-6-5 9:18:47  點(diǎn)擊數(shù):2
【字體: 字體顏色
摘  要:加載引導(dǎo)是TI公司的DSPs系統(tǒng)設(shè)計(jì)中必不可少的重要環(huán)節(jié)。文章對(duì)TMS320C54x加載引導(dǎo)的概念、方法及特點(diǎn)做了詳細(xì)的闡述,同時(shí)以TMS320C5402的16位并行加載引導(dǎo)方式為例,給出了加載引導(dǎo)設(shè)置文件的程序代碼和所生成的引導(dǎo)表文件。
    關(guān)鍵詞
:加載引導(dǎo);數(shù)字信號(hào)處理;TMS320C54x

1 前言
  TMS320C54x是TI公司推出的定點(diǎn)系列數(shù)字信號(hào)處理芯片,它具有運(yùn)算速度高、CPU結(jié)構(gòu)優(yōu)化、功耗低和智能化外設(shè)等特點(diǎn),特別適用于實(shí)時(shí)嵌入式系統(tǒng)的開發(fā),因此,它已成為數(shù)字產(chǎn)品設(shè)計(jì)中低成本,低功耗、高性能的數(shù)字信號(hào)處理芯片的首選,在便攜式儀器、消費(fèi)類電子、醫(yī)療設(shè)備等領(lǐng)域得到廣泛的應(yīng)用。
  TMS320C54x的加載引導(dǎo)(BOOTLOAD)方式可使系統(tǒng)在上電時(shí)將代碼從片外加載到程序區(qū),從而允許開發(fā)者事先將程序代碼放在外部低速的非易失性存儲(chǔ)器件中以便快速取址、譯址和執(zhí)行。
  開發(fā)設(shè)計(jì)人員可以用不同的控制信號(hào)(如中斷、外部標(biāo)志(XF)、通用輸出(BIO)等)來選擇不同的加載引導(dǎo)方式以滿足設(shè)計(jì)需求。

2 加載引導(dǎo)(BOOTLOAD)方式
  在上電復(fù)位后,DSP只有處于微計(jì)算機(jī)狀態(tài)即MP/MC為零時(shí)才能進(jìn)入加載引導(dǎo)過程。TI公司已在DSP芯片內(nèi)部ROM的OF800H-OFCOOh 中固化了一段加載引導(dǎo)程序(BOOTLOADER),其作用是先根據(jù)相關(guān)控制信號(hào)的不同狀態(tài)來確定采用何種加載引導(dǎo)方式,然后將代碼從外部加載到程序區(qū),最后再將程序入口地址賦給程序指針。在這段程序的開始,還應(yīng)對(duì)CPU狀態(tài)寄存器進(jìn)行初始化設(shè)置,包括屏蔽中斷(INTM=1)、內(nèi)部DARAM映射到程序 /數(shù)據(jù)區(qū)(OVLY=1)、程序/數(shù)據(jù)區(qū)讀寫加7個(gè)等待周期等設(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)存儲(chǔ)器中,然后,DSP再從數(shù)據(jù)區(qū)007FH提供的地址開始執(zhí)行程序。
  8位/16位并行引導(dǎo)
  并行引導(dǎo)就是以并行方式從外部讀取引導(dǎo)表數(shù)據(jù),同時(shí)根據(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ù)同時(shí)根據(jù)該表的內(nèi)容加載代碼然后執(zhí)行。其中McBSP0支持16位,McBSP1支持8位。
  8位串行EEPROM引導(dǎo)
  該模式通過DSP的McBSP1在時(shí)鐘停止模式(SPI)下從串行EEPROM中讀取引導(dǎo)表數(shù)據(jù),同時(shí)根據(jù)該表的內(nèi)容下載代碼然后執(zhí)行。
  8位/16位IO引導(dǎo)
  在IO引導(dǎo)模式下,加載引導(dǎo)程序首先通過外部標(biāo)志(XF)和通用輸出來(BIO)實(shí)現(xiàn)并行的異步握手協(xié)議,然后再從IO端口0000h讀取引導(dǎo)表數(shù)據(jù),同時(shí)根據(jù)該表的內(nèi)容下載代碼并執(zhí)行。
  加載引導(dǎo)程序(BOOTLOADER)允許多代碼段加載,且該加載不占用連續(xù)地址空間。另外,在并口和IO加載引導(dǎo)方式下,加載引導(dǎo)程序(BOOTLOADER)還會(huì)根據(jù)引導(dǎo)表的設(shè)置對(duì)DSP的SWWSR、BSCR寄存器進(jìn)行設(shè)定。

3 加載引導(dǎo)(BOOTLOAD)的執(zhí)行
  當(dāng)加載引導(dǎo)程序完成初始化后,便可執(zhí)行一系列的檢測(cè)操作以確定采用哪種加載引導(dǎo)方式。其檢測(cè)順序如下:
    (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)方式的檢測(cè)過程。當(dāng)系統(tǒng)檢測(cè)一遍后,若無有效加載引導(dǎo)方式被選中,加載引導(dǎo)程序?qū)⒅匦聠?dòng)并繼續(xù)檢測(cè),但此時(shí)是從標(biāo)準(zhǔn)串行加載引導(dǎo)方式開始而并不是檢測(cè)所有的引導(dǎo)方式。
3.1主機(jī)接口加載引導(dǎo)
  一般在DSP芯片復(fù)位后,首先判斷是否選擇主機(jī)接口引導(dǎo)方式。具體方式是加載引導(dǎo)程序先將數(shù)據(jù)區(qū)007Fh清零并發(fā)出主機(jī)中斷,然后監(jiān)測(cè)中斷標(biāo)志寄存器(IFR)中的外部中斷2(INT2),此時(shí)若有INT2發(fā)生,則認(rèn)為主機(jī)接口引導(dǎo)方式被唯一選中并進(jìn)入該引導(dǎo)方式。否則,加載引導(dǎo)程序還會(huì)檢查其它引導(dǎo)方式,包括主機(jī)方式。
  為了適時(shí)地觸發(fā)INT2外部中斷,可以將主機(jī)中斷(HINT)和外部中斷2(INT2)直接連在一起,或者在DSP復(fù)位30個(gè)時(shí)鐘周期內(nèi)觸發(fā)一個(gè)有效的外部中斷(INT2)。
  進(jìn)入主機(jī)接口引導(dǎo)方式后,主機(jī)就可以向DSP加載代碼,直到加載結(jié)束,同時(shí)在DSP數(shù)據(jù)區(qū)的007Fh寫入DSP程序開始執(zhí)行位置。而加載引導(dǎo)程序則一直監(jiān)測(cè)007Fh的數(shù)據(jù)是否有改變,如果數(shù)據(jù)發(fā)生非零改變,則結(jié)束加載引導(dǎo),同時(shí)將程序指針設(shè)為該非零值以作為程序起始地址。
3.2串行EEPROM加載引導(dǎo)
  若未進(jìn)入主機(jī)接口引導(dǎo)方式,加載引導(dǎo)程序會(huì)通過檢測(cè)外部中斷3(INT3)來判斷是否選擇串行EEPROM方式。若發(fā)現(xiàn)中斷標(biāo)志位(IFR)中的外部中
斷3 (INT3)有效,則進(jìn)入串行EEPROM加載引導(dǎo)方式。也就是說,在DSP復(fù)位30個(gè)時(shí)鐘周期內(nèi),如有外部中斷3(INT3)被觸發(fā),則選擇這種加載引導(dǎo)方式。為了產(chǎn)生有效的外部中斷3(INT3),可以將多通道緩沖串口(McBSP1)的傳輸引腳(BDX1)與外部中斷3(INT3)直接聯(lián)接起來。具體的連接方式如圖2中的虛線所示。


  有一點(diǎn)需要注意:那就是并非所有版本的TMS320C5402都完全支持這種加載引導(dǎo)方式。
3.3并行加載引導(dǎo)
  并行加載引導(dǎo)方式支持8位和16位數(shù)據(jù)寬度,也就是說外部非易失性存儲(chǔ)設(shè)備可以是8位或16位。在加載過程中,軟件等待寄存器(SWWSR)和邊界切換控制寄存器會(huì)依據(jù)引導(dǎo)表中的設(shè)置進(jìn)行配置,但此設(shè)置只有在引導(dǎo)加載結(jié)束時(shí)才起作用。   首先,加載引導(dǎo)程序可從IO空間或數(shù)據(jù)空間的0FFFFh讀取引導(dǎo)表的地址(范圍為04000h~0FFFFh)。相比而言,從數(shù)據(jù)空間讀取更為方便,因?yàn)榭梢詫⒁龑?dǎo)表數(shù)據(jù)和它的起始地址放在一個(gè)外部非易失性存儲(chǔ)設(shè)備中。然后按照得到的引導(dǎo)表起始地址讀取數(shù)據(jù)。如果讀到10AAh則是16 位數(shù)據(jù)寬度,并開始加載引導(dǎo);而如果讀到xx08h則是8位數(shù)據(jù)寬度,此時(shí)系統(tǒng)將繼續(xù)讀下一個(gè)數(shù)據(jù),只有讀到xxAAh才能進(jìn)入加載引導(dǎo)。
3.4標(biāo)準(zhǔn)串口加載引導(dǎo)
  實(shí)際上,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)方式時(shí),加載引導(dǎo)程序先將串口配置為TMS320C54的標(biāo)準(zhǔn)串口,并將DSP的外部標(biāo)志位(XF)置低以等待接收數(shù)據(jù),然后監(jiān)測(cè)中斷標(biāo)志寄存器,看是否有串口中斷發(fā)生,同時(shí)判斷是哪個(gè)串口(BRINT0或BRINT1)。若是串口1中斷,則讀取串口數(shù)據(jù)接收寄存器的值以進(jìn)一步判斷,如果第一個(gè)字節(jié)是08h,第二個(gè)字節(jié)是AAh則進(jìn)入8位串口引導(dǎo)方式,否則判斷是否是串口0中斷。若是串口0中斷,同樣讀取串口數(shù)據(jù)接收寄存器的值并進(jìn)一步判斷,如果是10AAh則進(jìn)入16位串口引導(dǎo)方式,否則繼續(xù)判斷是否是IO方式。
3.5 IO加載引導(dǎo)
  由于在標(biāo)準(zhǔn)串行方式中,加載引導(dǎo)程序已經(jīng)把外部標(biāo)志位(XF)置低,因此,若無串口中斷發(fā)生,DSP將判斷是否選擇IO方式。IO方式是利用外部標(biāo)志位(XF)和通用輸入引腳(BIO)通過握手信號(hào)來傳輸數(shù)據(jù)的。當(dāng)XF保持“0”狀態(tài)時(shí),表示DSP已準(zhǔn)備好進(jìn)入IO引導(dǎo)方式,此時(shí)若外部主機(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讀回的第一個(gè)數(shù)據(jù)如果是10AAh,則以16位數(shù)據(jù)寬度傳輸引導(dǎo)表;如果第一個(gè)是08h,第二個(gè)是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í)源程序數(shù)據(jù)流的生成結(jié)構(gòu)。加載引導(dǎo)表的生成步驟如下:
 。1)編譯程序代碼,生成目標(biāo)文件。應(yīng)當(dāng)注意:
對(duì)于TMS320C5402,需加編譯選項(xiàng)-v548,否則最后生成的將是早期TMS320C54x的引導(dǎo)表。
  (2)鏈接目標(biāo)文件,生成通用目標(biāo)文件(COFF)。
    (3)根據(jù)加載引導(dǎo)設(shè)置生成十六進(jìn)制文件。
  實(shí)際上,有時(shí)也可將加載引導(dǎo)設(shè)置成一個(gè)文件。

5 應(yīng)用舉例

  下面給出TMS320C5402通過16位并口方式從FLASH(AT29LV1024)中加載引導(dǎo)程序的應(yīng)用舉例,其編譯鏈接的細(xì)節(jié)這里不再贅述。假設(shè)已經(jīng)生成了通用目標(biāo)文件MAIN.OUT,則加載引導(dǎo)設(shè)置文件OUT2HEX.CMD如下:
 


  這樣利用十六進(jìn)制轉(zhuǎn)化工具在命令格式下執(zhí)行:HEX500 OUT2HEX.CMD,即可生成加載引導(dǎo)表文件MAIN.HEX。



 

  圖3所示是生成的引導(dǎo)表文件。它的數(shù)據(jù)流結(jié)構(gòu)符合前面所說的格式。應(yīng)當(dāng)注意:在調(diào)試階段,程序入口地址每編譯一次都有可能發(fā)生變化,所以每次編譯完都應(yīng)根據(jù)編譯生成的存儲(chǔ)映射文件(.MAP)來更改加載引導(dǎo)設(shè)置文件(.CMD)中-e選項(xiàng)后的程序入口參數(shù)。實(shí)際上,如果中斷向量表不放在與片上ROM可能重疊的存儲(chǔ)區(qū)域(比如E000h),那么,利用RESET中斷時(shí),程序也會(huì)跳至程序入口,因此,可在加載引導(dǎo)設(shè)置文件中將程序入口參數(shù)設(shè)為E000h而不必再更改。
  在完成上述工作后,便可以用編程器將這個(gè)十六進(jìn)制的文件燒寫到FLASH里進(jìn)行加載引導(dǎo)了。另外,如果FLASH支持在線編程,可以先將十六進(jìn)制文件(.HEX)轉(zhuǎn)化為二進(jìn)制文件(.BIN),并在仿真環(huán)境下通過JTAG接口利用文件操作系統(tǒng)將數(shù)據(jù)在線寫入FLASH中,這樣將更加方便快捷。
<!--→參考文獻(xiàn)CH(開始)-->

參考文獻(xiàn)

1.TMS320C548/C549 Bootloader Technical Reference
2.TMS320C5402 Bootloader Technical Reference
3.TMS320C54XDSPCPUANDPERIPHERALSREF ERENCESETVOLUMEI
4 胡廣書.?dāng)?shù)字信號(hào)處理——理論、算法與實(shí)現(xiàn).北京:清華大學(xué)出版社,1997

<!--插入廣告JS代碼-->
  • 上一篇: 基于DSP與AD9852的任意信號(hào)發(fā)生器
  • 下一篇: 基于AD7864和DSP的4路數(shù)據(jù)采集系統(tǒng)
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1