《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > TMS320VC5410的BOOT設(shè)計與實現(xiàn)
TMS320VC5410的BOOT設(shè)計與實現(xiàn)
摘要: TMS320VC54X系列DSP芯片一般都在片內(nèi)設(shè)置有BOOT程序,。BOOT程序的主要作用是在開機(jī)時將用戶程序從外部裝入到程序存貯器,。不同型號的DSP芯片中BOOT引導(dǎo)程序的大小是不同的,。TMS320VC5410內(nèi)部就具有2K字的BOOT程序,,下面就介紹TMS320VC5410的BOOT設(shè)計方法。
Abstract:
Key words :

  TMS320VC54X系列DSP芯片一般都在片內(nèi)設(shè)置有BOOT程序,。BOOT程序的主要作用是在開機(jī)時將用戶程序從外部裝入到程序存貯器,。不同型號的DSP芯片中BOOT引導(dǎo)程序的大小是不同的。TMS320VC5410內(nèi)部就具有2K字的BOOT程序,,下面就介紹TMS320VC5410的BOOT設(shè)計方法,。

  1 BOOT的模式選擇

  我們使用TMS320VC5410的BOOT程序時,,需要將DSP設(shè)置為微機(jī)工作方式(硬件復(fù)位后采樣MP/MC=0),則當(dāng)執(zhí)行片內(nèi)的引導(dǎo)程序,,并且DSP復(fù)位后,,程序就從內(nèi)部ROM的FF80H處開始執(zhí)行程序。在FF80H處,,有一條跳轉(zhuǎn)指令,,轉(zhuǎn)向ROM中已掩模的BOOT程序,這樣便開始運(yùn)行內(nèi)部的BOOT程序,。這個引導(dǎo)程序首先進(jìn)行初始化,。初始化工作包括使中斷無效(INTM=1)、將內(nèi)部的雙存取塊/單存取塊映射到程序/數(shù)據(jù)空間(OVLY=0),,對程序和數(shù)據(jù)空間都設(shè)置7個等待狀態(tài),。

  TMS320VC5410程序引導(dǎo)共有5種模式:

  (1)HPI模式,,這是一種主機(jī)接口模式。主機(jī)通過寫入主機(jī)控制寄存器(HPIC)來中斷DSP,,而  DSP則通過主機(jī)中斷信號來中斷主機(jī),。主機(jī)可以響應(yīng)HINT信號和清除該信號。HINT是否為低電平?jīng)Q定了是否選用主機(jī)接口HPI引導(dǎo)模式,。

 ?。?)并行I/O口BOOT模式(支持8bits和16bits)。

 ?。?)串行口模式(標(biāo)準(zhǔn)/TDM/BSP)(支持8bits和16bits),,串口引導(dǎo)共有8種方式。按字長8位與16位兩種格式和CLKX/FSX引腳的設(shè)置決定引導(dǎo)模式,。采用8位子長時需要對下列控制位置位:

  •   接收復(fù)位信號RRST,;
  •   發(fā)送模式位TXM;
  •   時鐘模式位MCM(使CLKX由片內(nèi)時鐘源驅(qū)動),;
  •   幀同步模式位FSM(必須由外部施加幀同步脈沖信號到FSR引腳),;
  •   格式位FO(選擇8位數(shù)據(jù)傳輸方式)。

 ?。?)外部并行模式(支持8bits和16bits),。

  (5)WARM BOOT,,即熱引導(dǎo)模式,,可以使傳輸控制入口地址,也可以在器件熱復(fù)位或用其他方式把程序代碼已經(jīng)傳輸?shù)狡瑑?nèi)或片外存儲器(如DMA)后使用WARM引導(dǎo)模式,。在WARM引導(dǎo)模式時,,由BRS字中的SRC或ADDR字段指定入口地址的高6位,。

  本文主要就8位/16位并行I/O口引導(dǎo)模式作探討。

  I/O口引導(dǎo)模式提供了一種異步地把程序代碼從I/O口地址空間0h處傳輸?shù)絻?nèi)部或外部的程序存儲器的方法,。圖1是程序流程圖,。

程序流程圖

  由圖1的流程圖我們可以看到設(shè)置合理的數(shù)據(jù)區(qū)的FFFFH地址的內(nèi)容,使它成為有效地并行引導(dǎo),,就可以實現(xiàn)我們的并行I/O的BOOT模式,。

  2 設(shè)計FFFFH地址的內(nèi)容使它成為有效的并行引導(dǎo)數(shù)據(jù)

  FFFFH地址所填的內(nèi)容就是所設(shè)計的應(yīng)用程序開始的地址,在所設(shè)計的程序中起始地址是0頁的08000h,,因此,,在此程序中將FFFFH的內(nèi)容設(shè)置為08000h。

  3 設(shè)置08000h的內(nèi)容,,實現(xiàn)引導(dǎo)功能

  我們可以根據(jù)圖2來得到我們所需要填寫的數(shù)據(jù),。

流程圖

  由圖2的流程圖我們可以知道,要往08000h地址開始寫入所規(guī)定的值才符合要求,。見表1,。

填入符合要求的字

  依照表1,我們可以填入符合要求的字,。

  4 獲取填入字的信息

  要獲取填入字的信息就要生成一張表,,而生成這張表之前需要做一個批處理文件,批處理文件的做法如下:

 ?。?)首先編譯通過生成“.out”文件,;

  (2)打開UltraEdit-32編輯批處理的軟件,;

 ?。?)用hex命令進(jìn)行編輯。

  hex命令形式如下:

  •   myfile.out/*輸入的COFF文件名.
  •  ?。璭 0x0000/*程序的起始地址.
  •  ?。璦/*ASCII輸出形式.
  •   -boot/*引導(dǎo)所有的程序單元.
  •  ?。璪ootorg PARALLEL/*創(chuàng)建PARALLEL的BOOT引導(dǎo).
  •  ?。璵emwidth 16/*16bits的EPROM.
  •   -o myfile.hex/*輸出文件名.

  這里有一個小程序可以看出具體操作過程(程序的起始為0x2000):

  hex500 test1.out-e 0x2000-boot-bootorgPARALLEL-memwidth 16-romwidth 16-o test1.hex

  這樣可以生成一個表,,如表2所示,。

生成表

生成表

生成表

生成表

  表2中帶下劃線者代表每一個Section的起始地址,有框線者是這一個Section的長度(注意,,當(dāng)我們依據(jù)這張表填的時候,,應(yīng)該將Section的長度加1,這是應(yīng)用后得出來的經(jīng)驗),,最后一個Section的最后四個0表示結(jié)束,。

  由上,,我們就可以使用并行的BOOT模式了。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。