當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]TMS320C62x和TMS320C67x DSPs提供了幾種不同的啟動(dòng)模式,不同的啟動(dòng)模式?jīng)Q定了DSP復(fù)位后的初始化以及代碼裝載方式

作者Email:  cai_yang@etang.com

    摘要TMS320C62x和TMS320C67x DSPs提供了幾種不同的啟動(dòng)模式,不同的啟動(dòng)模式?jīng)Q定了DSP復(fù)位后的初始化以及代碼裝載方式。本文就TMS320C62x DSP的HPI啟動(dòng)模式進(jìn)行詳細(xì)的說明。

    關(guān)鍵詞:TMS320C62x    DSP     HPI   啟動(dòng)模式

    1 緒言

    在TMS320C62x系列DSP中,主機(jī)口HPI是一個(gè)16位寬度的并行端口。主機(jī)(也稱上位機(jī))掌管該接口的主控權(quán),通過它可以直接訪問CPU的存儲(chǔ)器空間。另外,主機(jī)還可以直接訪問TMS320C62x片內(nèi)的存儲(chǔ)映射的外圍設(shè)備。

    HPI與CPU存儲(chǔ)空間的互連是通過DMA控制器實(shí)現(xiàn)的。借助專門的地址和數(shù)據(jù)寄存器,通過DMA輔助通道,完成HPI對(duì)存儲(chǔ)空間的訪問。主機(jī)和CPU都可以對(duì)HPI控制寄存器HPIC進(jìn)行訪問,主機(jī)一方還可以訪問HPI地址寄存器HPIA和HPI數(shù)據(jù)寄存器HPID。

    2 TMS320C62x引導(dǎo)模式

    TMS320C62x系列DSP提供了三種引導(dǎo)方式:

    (1) 沒有自舉過程:CPU直接從地址0開始執(zhí)行代碼;

    (2) ROM自舉:由DMA/EDMA控制器從外部CE1空間中的ROM中拷貝固定數(shù)量的一段代碼到地址0,拷貝結(jié)束后,CPU從地址0開始運(yùn)行;

    (3) HPI自舉:由外部主機(jī)通過HPI對(duì)芯片的存儲(chǔ)器空間進(jìn)行初始化,初始化結(jié)束后,外部主機(jī)通過HPI中斷喚醒CPU,CPU開始從地址0運(yùn)行。

    所有這些設(shè)置項(xiàng)都是在芯片復(fù)位的時(shí)候才進(jìn)行檢查。一旦復(fù)位信號(hào)有效(reset=0),所有的三態(tài)輸出管腳恢復(fù)為默認(rèn)狀態(tài),然后在reset信號(hào)的上升沿處檢查設(shè)置管腳BOOTMODE[4:0]的狀態(tài),自舉邏輯開始生效。其中C6201/C6701有專門的管腳作為BOOTMODE[4:0],C6211/C6711則是利用主機(jī)口的HD[4:0],C6202/C6203利用擴(kuò)展總線的XD[4:0]作為BOOTMODE[4:0]信號(hào)。

    對(duì)于TMS320C62x的HPI自舉模式過程如下:首先需要設(shè)置Boot模式,Boot模式設(shè)置如表1所示。當(dāng)DSP被復(fù)位時(shí),如果選擇了HPI boot模式,那么只有DSP的內(nèi)核進(jìn)入復(fù)位狀態(tài),DSP其余模塊均保持激活狀態(tài)。這樣,主機(jī)就可以通過HPI接口訪問DSP的整個(gè)存儲(chǔ)空間,包括片內(nèi)、片外存儲(chǔ)器和片內(nèi)的外設(shè)寄存器,對(duì)它們進(jìn)行初始化。主機(jī)對(duì)DSP做完了有關(guān)設(shè)置后,向HPIC寄存器的DSPINT位寫1,將DSP從復(fù)位狀態(tài)喚醒,接下來CPU就從地址0開始執(zhí)行程序。主機(jī)對(duì)DSP可以進(jìn)行的操作包括:初始化CPU和EMIF,向DSP加載程序以及數(shù)據(jù)等。

表1 TMS320C62x HPI boot配置
 

BOOTMODE[4:0]

Memory Map

Memory at Address 0

Boot

00110

MAP 0

External; default values

HPI

00111

MAP 1

Internal

HPI

    3 TMS320C62x HPI引導(dǎo)模式的實(shí)現(xiàn)

    3.1 創(chuàng)建啟動(dòng)代碼

    實(shí)現(xiàn)TMS320C62x HPI引導(dǎo)模式的第一步是生成HPI引導(dǎo)的DSP代碼,并把它與主處理器應(yīng)用程序合并在一起,使DSP應(yīng)用程序可以和主處理器應(yīng)用程序一起遠(yuǎn)程下載。為了簡(jiǎn)化,采用下列方案:把DSP應(yīng)用程序轉(zhuǎn)換成頭文件中的數(shù)組,并和主處理器應(yīng)用程序一起編譯連接。

    具體實(shí)現(xiàn)分為兩步:1)利用轉(zhuǎn)換工具HEX6x把COFF文件轉(zhuǎn)換成ASCII-Hex格式十六進(jìn)制文件;2)利用自編工具h(yuǎn)ex2aray.exe將ASCII-Hex格式的文件轉(zhuǎn)換成包含數(shù)組的頭文件。

    (1)利用轉(zhuǎn)換工具HEX6x把COFF文件轉(zhuǎn)換成ASCII-Hex格式十六進(jìn)制文件

    利用轉(zhuǎn)換工具HEX6x把COFF文件轉(zhuǎn)換成十六進(jìn)制文件,使用轉(zhuǎn)換工具HEX6x需要一個(gè).cmd文件說明具體的轉(zhuǎn)換格式,如下面文件hexcom.cmd所示:HEX6x把COFF文件test.out轉(zhuǎn)換成兩個(gè)ASCII-Hex格式的文件:一個(gè)是代碼段,包含在文件test.a00中;另一個(gè)是初始化的數(shù)據(jù)段,包含在文件test.a10中。在DOS命令行中執(zhí)行hex6x hexcom.cmd將產(chǎn)生test.a00和test.a10兩個(gè)文件。

文件hexcom.cmd:
..object est.out
-a
-byte
-image
-memwidth 16
-romwidth 16
-order M

ROMS
{
/* Size of the internal pgm memory */
PGM: org = 0x00000000, length = 0x10000
/* Size of the internal data memory */
DATA: org = 0x80000000, length = 0x10000
}

    (2)利用工具h(yuǎn)ex2aray.exe生成頭文件

    然后利用hex2aray.exe將兩個(gè)ASCII-Hex格式的文件:test.a00和test.a10分別轉(zhuǎn)換成兩個(gè)個(gè)包含數(shù)組的頭文件:code.h和init.h。工具h(yuǎn)ex2aray.exe為自編工具。在DOS命令行中分別執(zhí)行hex2aray –i test.a00 –o code.h和hex2aray –i test.a10 –o init.h兩條命令將產(chǎn)生兩個(gè)頭文件code.h和init.h。在文件hexcom.cmd中的選項(xiàng):- a,指示HEX6x按ASCII-Hex格式轉(zhuǎn)換文件,ASCII-Hex文件格式如下所示:

^B
$AXXXX,
XX XX XX XX XX XX XX XX XX XX. . .
^C

    文件開始是ASCII STX 字符 (ctrl-B, 02h),結(jié)束是ASCII ETX 字符 (ctrl-C, 03h);$AXXXX,代表地址;其余為代碼。轉(zhuǎn)換后的頭文件格式如下:

const char code[]={0x12,0x18,0x01,0x00,0x28,0x00,0x00,0x00,0x2A,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,
0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

};

    3.2 主機(jī)對(duì)HPI接口的操作

    TMS320C62x提供了三個(gè)16位寄存器:HPIC、HPIA、HPID和16位數(shù)據(jù)線與主處理器通信。主處理器通過HPIC、HPIA、HPID和16位數(shù)據(jù)線來與TMS320C62x進(jìn)行數(shù)據(jù)交換,數(shù)據(jù)交換的過程如下:

    1)首先初始化HPIC;
    2)然后把地址寫到HPIA;
    3)最后通過HPID讀或?qū)憯?shù)據(jù)。

    假設(shè)主機(jī)CPU也是TMS320C62x,那么主機(jī)與目標(biāo)機(jī)之間的連接如圖1所示:

    如圖1所示,假如Target 6201的/HCS連接到主機(jī)6201的CE1上。Target 6201的HPI寄存器映射到Host 6201DSP內(nèi)存中,HCNTRL[1:0]和HHWIL連接到主機(jī)CPU的地址線上,那么HPIC、HPIA、HPID寄存器的地址分配如表2所示。,那么在C語言中,可以通過指針訪問HPIC、HPIA、HPID,例如:

#define C6201_HPI 0x01400000  /* Host address on which C6x HPI is mapped */
int *hpi_ptr;      /* define and initialize pointer*/
hpi_ptr = (int *)C6201_HPI;

/* Write dest_address to HPIA, with HOB=1 */
ptr_hpi[2] = (int)(dest_address & 0x0ffff);
ptr_hpi[3] = (int)((dest_address>>16)&0x0ffff);

表2  HPIC、HPIA、HPID各寄存器的地址分配
 

映射到主機(jī)的地址

HPI控制線

HPI寄存器訪問

HCNTL[1:0]

HHWIL

HPI Base address + 0x00

00

0

HPIC 1st  halfword

HPI Base address + 0x04

00

1

HPIC 2st  halfword

HPI Base address + 0x08

01

0

HPIA 1st  halfword

HPI Base address + 0x0C

01

1

HPIA 2st  halfword

HPI Base address + 0x10

10

0

HPID 1st  halfword

HPIA 自增

HPI Base address + 0x14

10

1

HPID 2st  halfword

HPIA自增

HPI Base address + 0x18

11

0

HPID 1st  halfword

HPIA不自增

HPI Base address + 0x1C

11

1

HPID 2st  halfword

HPIA不自增

    3.3 主機(jī)通過HPI下載代碼和數(shù)據(jù)段到目標(biāo)DSP

    一個(gè)程序由初始化區(qū)和非初始化區(qū)兩部分組成,主機(jī)處理器必須根據(jù).cmd命令文件把這兩個(gè)區(qū)裝載到DSP正確的地址。下面這段代碼就是將代碼段和數(shù)據(jù)段兩部分分別下載到指定地址(即程序RAM和數(shù)據(jù)RAM)。它主要是從*source中讀出32位長(zhǎng)的數(shù)據(jù),然后通過HPI將此數(shù)據(jù)寫到DSP的dest_add地址(即程序RAM和數(shù)據(jù)RAM)中。*source中的數(shù)據(jù)就是DSP的啟動(dòng)代碼段和數(shù)據(jù)段中的數(shù)據(jù)。

void C6x_write_section(int *ptr_hpi, short *source, int dest_add, int length)
{
int i;
/* Write HPIC with HWOB=1,1st halfword transferred is least significant */
/* HCNTRL1 HCNTRL0 HHWIL */
ptr_hpi[0] = 0x0001; /* 1st halfword 0 0 0 */
ptr_hpi[1] = 0x0001; /* 2nd halfword 0 0 1 */
/* Write destination address to HPIA, 1st halfword is least significant */
/* HCNTRL1 HCNTRL0 HHWIL */
ptr_hpi[2] = (int)(dest_add & 0x0ffff); /* 0 1 0 */
ptr_hpi[3] = (int)((dest_add>>16)&0x0ffff);/* 0 1 1 */
for(i=0 ; i < length ; i++)
{
/* Write source_word to HPID with address post-increment */
/* 1st half-word transferred is least significant */
/* HCNTRL1 HCNTRL0 HHWIL */
ptr_hpi[4] = (int) *source++; /* 1 0 0 */
ptr_hpi[5] = (int) *source++; /* 1 0 1 */
}
}

    3.4 目標(biāo)DSP開始執(zhí)行所下載的代碼

    主機(jī)通過HPI下載代碼段和數(shù)據(jù)段到目標(biāo)DSP以后,那么目標(biāo)DSP就需要執(zhí)行所下載的代碼了。通過寫HPIC寄存器的DSPINT位為1讓DSP退出復(fù)位狀態(tài)后,DSP就開始從地址0執(zhí)行所下載的代碼了。具體實(shí)現(xiàn)代碼為:

/* Write HPIC with DSPINT=1 */
/* HCNTRL1 HCNTRL0 HHWIL */
/* 1st halfword 0 0 0 */
/* 2nd halfword 0 0 1 */
ptr_hpi[0] = 0x0002; /* 1st halfword */
ptr_hpi[1] = 0x0002; /* 2nd halfword */

    4 總結(jié)

    根據(jù)前面所述,TMS320C62x HPI啟動(dòng)過程如圖2所示。



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉