<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > HPI方式自舉在TMS320VC5402 DSP芯片上的實(shí)現

HPI方式自舉在TMS320VC5402 DSP芯片上的實(shí)現

作者: 時(shí)間:2009-03-19 來(lái)源:網(wǎng)絡(luò ) 收藏

3 使用進(jìn)行

是作為多機數據交換而出現的,但是由于其功能特性,又產(chǎn)生了一種新的應用――使用進(jìn)行。實(shí)際上,TMS320VC5x系列在片內固化的程序中對HPI提供了全面的支持。筆者在VOIP系統的開(kāi)發(fā)中,了使用HPI對DSP 的自舉,從而省掉了DSP的EPROM,使DSP只使用SRAM,提高了處理速度,并使HOST CPU具有更大的控制權,很適合多處理器系統。對于計算機插卡式的DSP系統,程序可以從PC機的硬盤(pán)上獲取,從而減小了插卡版面空間占用,提高了處理速度。

上,需要解決以下幾個(gè)問(wèn)題。

3.1 DSP片內固化的程序對HPI自舉的支持

自舉從本質(zhì)上說(shuō)就是在DSP啟動(dòng)后通過(guò)某種獲取運行代碼并開(kāi)始運行,這個(gè)過(guò)程是在固化在DSP片內的程序輔助下完成的。在DSP上電以后,Bootloader程序按照一定的順序依次檢驗何種自舉可用,自舉包括HPI方式、Serial EEPROM方式、標準Serial Port方式、Parallel方式和I/O方式。

Bootloader查詢(xún)HPI方式是否可用是這樣進(jìn)行的:在啟動(dòng)以后,DSP片內0x7f地址的值被置為0,Bootloader不斷檢驗0x7f地址處是否出現了可用的程序指針的跳轉地址。當其發(fā)現該地址內的值不為0時(shí),即判定為DSP已由外部HOST CPU進(jìn)行了HPI自舉程序加載,并按照該值跳轉PC指針,開(kāi)始運行,從而完成HPI方式自舉。

3.2 突破4K的空間限制

由于HPI-8的特性,HOST能夠訪(fǎng)問(wèn)所有的片內RAM空間,對于來(lái)說(shuō),其片內RAM地址空間從0000H到3fffH,一共4K。這已經(jīng)大大超過(guò)了標準HPI的2K的大小,但是對于大多數DSP應用程序來(lái)說(shuō),片內RAM除了放置程序代碼以外,很可能還需要留出一部分供數據空間使用。實(shí)際上,大部分代碼都可能放置在片外的程序空間,而這部分空間并不是HOST通過(guò)HPI-8所能夠訪(fǎng)問(wèn)得到的。所以需要使用某種技術(shù)突破4K的片內RAM空間限制。由于DSP程序本身是能夠訪(fǎng)問(wèn)到所有DSP程序、數據空間的,所以HOST可以首先放置一個(gè)體積不大于4K的程序到DSP內,再由該程序和HOST協(xié)作完成超出片內RAM的代碼的放置工作。

一般將上述的首先放入DSP的程序稱(chēng)為kernel程序,其功能比較簡(jiǎn)單,本身不超過(guò)4K,可以由HOST全部放入到的片內RAM中,并被啟動(dòng)。

基于此種思路的流程圖如圖1所示。

3.3 程序代碼的定位

編程序的時(shí)侯使用符號作為地址,經(jīng)編譯、鏈接后,符號所表示的相對地址已經(jīng)轉化為絕對地址。要使程序能夠正常運行,需要將程序代碼寫(xiě)到指定的位置――絕對地址。在 HOST→Kernel→DSP應用的HPI自舉方式中,HOST和Kernel需先后完成Kernel代碼和DSP應用程序代碼的定位工作。

因此,在HOST CPU的外存儲器中,至少需要保存DSP程序代碼和相應的地址信息。這些數據在由自舉程序寫(xiě)到DSP后,被拼接成正確的可執行代碼、已初始化數據等,并被正確定位。一般來(lái)說(shuō),HOST CPU的外存儲器中的DSP自舉數據是HEX格式的。雖然HEX格式有很多種,但任何一種包含有地址等信息的16進(jìn)制HEX格式文件都是適用的。

常見(jiàn)的HEX格式有ASCII、Intel、TI-Tagged等格式,如圖2所示。

在各種HEX格式中,Intel格式相對來(lái)說(shuō)比較適宜,因為在Intel格式的HEX文件中,代碼被分為每行一個(gè)塊,這種分塊的最大長(cháng)度固定,因此在DSP內預留的緩沖區的大小容易計算。Intel格式的HEX文件的格式為:BYTE1作為每塊的起始標志,總是“:”;BYTE2-3表示該塊中有效數據的長(cháng)度,最長(cháng)為32個(gè)BYTE。這種有效數據可能是程序代碼,也可能是擴展地址信息;BYTE4-7表示該塊內代碼的起始地址;BYTE8-9是類(lèi)型,00表示程序代碼,01表示結束,04表示擴展地址信息;BYTE10之后是代碼,直到最后兩個(gè)BYTE,表示校驗位。校驗位的值是該塊中先前數據值和的補碼。

根據選定的HEX格式,CPU首先按照該格式的定義對Kernel的HEX數據進(jìn)行解釋,獲取各種信息后,CPU將其在TMS320VC5402片內RAM中組成可執行DSP程序。然后在CPU和kernel的共同作用下,對DSP應用程序的HEX數據進(jìn)行解釋,最后完成其在DSP中的拼接、定位并啟動(dòng)DSP應用程序――跳轉到DSP應用程序的起始地址。

4 系統軟硬件設計與

4.1 系統框圖

在筆者開(kāi)發(fā)的VOIP系統中,使用了HPI對DSP (TMS320VC5402)進(jìn)行自舉的功能。其中相應部分的框圖如圖3所示。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>