国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

TMS320C62x HPI引導(dǎo)過程的實(shí)現(xiàn)

發(fā)布時(shí)間:2010-11-25 12:07    發(fā)布者:eetech
關(guān)鍵詞: HPI , TMS320C62X , 引導(dǎo)過程
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\test.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語(yǔ)言中,可以通過指針訪問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 = (int)(dest_address %26;amp; 0x0ffff); ptr_hpi = (int)((dest_address>>16)%26;amp;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 = 0x0001; /* 2nd halfword 0 0 1 */ /* Write destination address to HPIA, 1st halfword is least significant */ /* HCNTRL1 HCNTRL0 HHWIL */ ptr_hpi = (int)(dest_add %26;amp; 0x0ffff); /* 0 1 0 */ ptr_hpi = (int)((dest_add>>16)%26;amp;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 = (int) *source++; /* 1 0 0 */ ptr_hpi = (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 = 0x0002; /* 2nd halfword */

4 總結(jié)

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

本文地址:http://m.qingdxww.cn/thread-41619-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點(diǎn)宏來節(jié)省時(shí)間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項(xiàng)目中的數(shù)據(jù)
  • Dev Tool Bits——使用MPLAB® Data Visualizer進(jìn)行功率監(jiān)視
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕热久久久久久久 | 亚洲精品免费观看 | 天天综合色天天综合网 | h视频在线观看免费完整版 h视频在线观看免费观看 | 久久久久久尹人网香蕉 | 亚洲欧美日韩视频一区 | 日韩a一级欧美一级在线播放 | 中文在线亚洲 | 毛片免费全部免费观看 | 免费网站黄成人影院 | 中国国产成人精品久久 | 好爽毛片一区二区三区四区 | 日韩一区二区三区免费视频 | 三级4级全黄在线看 | 欧美日本高清视频在线观看 | 一级做a爰片久久毛片图片 一级做a爰片久久毛片人呢 | 欧美一级日韩一级亚洲一级va | 国偷盗摄自产福利一区在线 | 四虎影视站长工具 | 本道久久综合88全国最大色 | 视频一区二区三区蜜桃麻豆 | 国产精品视频久久 | 天堂最新版资源www在线 | 精品国产一区二区三区19 | 日本色黄视频 | 91国视频在线观看 | 特级毛片免费看 | 久久99精品免费视频 | 久久久精品免费视频 | 香蕉福利 | 国产一区二区免费在线 | 日韩欧美小视频 | 色五月视频 | 亚洲天堂成人 | 国产大片中文字幕在线观看 | 本道久久综合88全国最大色 | 精品国产国产综合精品 | 久久手机免费视频 | 亚洲黄色片网站 | 日韩一区二区天海翼 | 日本不卡在线一区二区三区视频 |