色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>DSP>詳談TMS320C62X DSP的混合編程

詳談TMS320C62X DSP的混合編程

2017-11-03 | rar | 0.6 MB | 次下載 | 1積分

資料介紹

TMS320C62X是美國(guó)德州儀器公司TI)的新一代高性能定點(diǎn)數(shù)字信號(hào)處理器DSP芯片。基于DSP的軟件設(shè)計(jì)問(wèn)題,就是采用編程語(yǔ)言進(jìn)行算法實(shí)現(xiàn)并使程序效率盡量滿(mǎn)足實(shí)時(shí)性要求。TI DSP的軟件設(shè)計(jì)可以采用匯編語(yǔ)言、高級(jí)語(yǔ)言(C/C++)以及C語(yǔ)言與匯編語(yǔ)言的混合編程。完全采用匯編語(yǔ)言編程復(fù)雜性高、開(kāi)發(fā)周期長(zhǎng),而完全采用C語(yǔ)言編程則程序的執(zhí)行效率相對(duì)較低,不能滿(mǎn)足實(shí)時(shí)性的要求。為了設(shè)計(jì)出性?xún)r(jià)比最好、開(kāi)發(fā)周期較短、比較復(fù)雜的DSP系統(tǒng),可以采用混合語(yǔ)言編程,把C語(yǔ)言和匯編語(yǔ)言的優(yōu)點(diǎn)有效地結(jié)合起來(lái)。C語(yǔ)言和匯編語(yǔ)言的混合編程有三種形式:在編寫(xiě)C語(yǔ)言代碼中插入?yún)R編語(yǔ)句,只需在匯編語(yǔ)句兩邊加上雙引號(hào)和括號(hào),在括號(hào)前面加上標(biāo)識(shí)asm,如asm(“匯編語(yǔ)句”);在編寫(xiě)C代碼的過(guò)程中調(diào)用內(nèi)聯(lián)函數(shù),TMS320C62X中有一些直接映射為內(nèi)聯(lián)的C6000指令的特殊函數(shù),內(nèi)聯(lián)函數(shù)用前下劃線(_)表示,使用時(shí)同調(diào)用C語(yǔ)言的庫(kù)函數(shù)一樣調(diào)用它,如b=_nassert(N》=10);匯編代碼以C代碼可以調(diào)用的函數(shù)出現(xiàn)。本文采用第三種形式。為了使程序代碼的執(zhí)行具有盡可能高的執(zhí)行效率,本文將著重點(diǎn)放在并行匯編代碼的編程,而不是線性匯編代碼的編程。
  1 C語(yǔ)言與匯編語(yǔ)言混合編程的接口規(guī)范和標(biāo)準(zhǔn)
  用C語(yǔ)言編寫(xiě)的代碼中核心代碼常常只是整個(gè)程序代碼的5%,但是卻占用了整個(gè)程序約95%的執(zhí)行時(shí)間。對(duì)這些核心代碼采用匯編語(yǔ)言編寫(xiě),可以大大提高代碼的執(zhí)行效率,而C語(yǔ)言程序可以象調(diào)用C程序的一個(gè)函數(shù)那樣去調(diào)用這個(gè)匯編函數(shù)。為了實(shí)現(xiàn)C語(yǔ)言和匯編語(yǔ)言的混合編程,需要注意一些規(guī)定的接口規(guī)范和標(biāo)準(zhǔn)。
  (1)采用C語(yǔ)言和匯編語(yǔ)言混合編程時(shí),TMS320C62X定義了一套嚴(yán)格的寄存器規(guī)則。這個(gè)寄存器規(guī)則表明了編譯器如何使用這些寄存器以及在函數(shù)調(diào)用過(guò)程中如何保護(hù)這些寄存器。
  調(diào)用函數(shù)保護(hù)了寄存器A0~A9和B0~B9,這就使得在編寫(xiě)匯編程序的時(shí)候可以任意的使用這幾個(gè)寄存器而不需保護(hù)它們。但當(dāng)使用到寄存器A10~A15或B10~B15的時(shí)候,則必須自行對(duì)它們進(jìn)行保護(hù)。長(zhǎng)型、雙精度型或者是長(zhǎng)雙精度型的數(shù)據(jù)對(duì)象要放在一個(gè)奇/偶寄存器對(duì)(如A1:A0)里,奇數(shù)寄存器存放著數(shù)據(jù)的符號(hào)位、指數(shù)位和最高有效位,而偶數(shù)寄存器則存放著低有效位。
  在默認(rèn)情況下,A3用作返回結(jié)構(gòu)指針寄存器,B3用作被調(diào)用函數(shù)返回地址寄存器,A15用作幀指針寄存器,B14用作數(shù)據(jù)頁(yè)指針寄存器,B15用作堆棧指針寄存器。這些寄存器在被調(diào)用的匯編函數(shù)中用到時(shí)都要進(jìn)行保護(hù)。
  (2)調(diào)用函數(shù)將參數(shù)傳遞到被調(diào)用函數(shù)中,前十個(gè)參數(shù)將被從左到右依次放入寄存器A4、B4、A6、B6、A8、B8、A10、B10、A12和B12,如果傳遞的參數(shù)是長(zhǎng)型、雙精度型或者是長(zhǎng)雙精度型,則將參數(shù)依次放入寄存器組A5:A4、B5:B4、A7:A6等,并將剩下的變量按相反的順序放在堆棧里。注意,如果傳遞的參數(shù)是一個(gè)結(jié)構(gòu)類(lèi)型的參數(shù),則傳遞的是該結(jié)構(gòu)類(lèi)型的地址。
  (3)如果在C/C++調(diào)用函數(shù)中做了正確的函數(shù)返回聲明,則被調(diào)用的匯編函數(shù)可以返回有效值。如果返回值是整型或32位的浮點(diǎn)型,則放在寄存器A4中返回;如果返回值是雙精度或是長(zhǎng)雙精度型,則放在A5:A4中返回;如果返回值是一個(gè)結(jié)構(gòu)類(lèi)型,則將其結(jié)構(gòu)的地址放在A3中返回。
  (4)編譯器為所有的外部對(duì)象指定一個(gè)鏈接時(shí)的名字。當(dāng)寫(xiě)匯編語(yǔ)言代碼時(shí),必須用與這個(gè)名字相同的名字。對(duì)于只在匯編語(yǔ)言模塊中用到的變量的標(biāo)識(shí)符,不能從下劃線開(kāi)始。任何一個(gè)在匯編語(yǔ)言中聲明的對(duì)象都要使其在C/C++中是可訪問(wèn)的,那么在匯編語(yǔ)言中必須用.def 或.global將其聲明為外部變量。同樣在匯編語(yǔ)言中要引用C/C++函數(shù)或?qū)ο髸r(shí),必須用.ref 或.global將C/C++對(duì)象聲明,這將產(chǎn)生一個(gè)在匯編語(yǔ)言函數(shù)中沒(méi)有定義的由鏈接器辨識(shí)的外部引用。
  還有一些細(xì)節(jié)也需要注意,如中斷子程序必須把該子程序?qū)⒁玫降乃屑拇嫫鬟M(jìn)行入棧處理;除了全局變量的初始化外,匯編語(yǔ)言的模塊不得因?yàn)槿魏文康亩褂?cinit段;匯編代碼的結(jié)束需用指令B.s2 B3將程序執(zhí)行從被調(diào)用函數(shù)返回到C語(yǔ)言調(diào)用函數(shù)中。
  2 并行匯編代碼的編寫(xiě)
  C6000的匯編代碼格式如下:
  標(biāo)號(hào): 并行標(biāo)記 [條件寄存器]指令助記符 功能單元 操作數(shù) ;注釋。如:
  LDW .D2 *B4,B2
  || [A1]SHL .S2X A4,B4 ;用到了交叉數(shù)據(jù)通道
  TMS320C62X片內(nèi)有8個(gè)并行的處理單元,分為相同的兩組。其體系結(jié)構(gòu)采用超長(zhǎng)指令字(VLIW)結(jié)構(gòu),一個(gè)指令包里的8條并行指令可同時(shí)分配到8個(gè)處理單元并行運(yùn)行。這種一個(gè)指令包里有8條指令并行執(zhí)行也給并行匯編代碼的編寫(xiě)帶來(lái)很多要考慮的問(wèn)題,具體如下:
  (1)TMS320C62X指令的執(zhí)行可以用延遲間隙來(lái)說(shuō)明。延遲間隙在數(shù)量上等于從指令的源操作數(shù)被讀取到執(zhí)行的結(jié)果可以被訪問(wèn)所用的指令周期。如對(duì)于乘法指令(MPY),源操作數(shù)從第i個(gè)周期被讀取,則其計(jì)算結(jié)果在第(i+2)個(gè)周期才可用。
  (2)使用相同功能單元的兩條指令不能被安排為并行指令。
  (3)使用同一條交叉通路的兩條指令不能被安排在同一個(gè)執(zhí)行指令包中,這是因?yàn)閺募拇嫫鹘MA~B或者從B~A都只有一條交叉通路。
  (4)將數(shù)據(jù)讀入到(或存儲(chǔ)自)相同寄存器組的兩條讀(寫(xiě))指令不能被安排在同一個(gè)執(zhí)行包中。
  (5)每一個(gè)執(zhí)行包里只能允許每一寄存器組處理一個(gè)長(zhǎng)定點(diǎn)類(lèi)型數(shù)據(jù)。
  (6)在一個(gè)指令周期內(nèi)對(duì)同一寄存器讀取多于四次是不允許的,但條件寄存器不在此限制之列。在一個(gè)指令周期內(nèi),不能 同時(shí)存在兩條寫(xiě)入同一寄存器的指令,只有在寫(xiě)操作不是在同一個(gè)指令周期發(fā)生時(shí),才可以將具有同一目的地址的兩條指令安排并行。
  3 基于TMS320C62X的運(yùn)動(dòng)補(bǔ)償?shù)幕旌暇幊淘O(shè)計(jì)實(shí)例
  運(yùn)動(dòng)補(bǔ)償是MPEG-4標(biāo)準(zhǔn)中的一種重要算法。運(yùn)動(dòng)補(bǔ)償是指根據(jù)運(yùn)動(dòng)矢量在參考幀中找出參考?jí)K。如果運(yùn)動(dòng)矢量的X分量和Y分量都是整象素長(zhǎng)度,則直接在參考幀中找出參考?jí)K。如果為半象素長(zhǎng)度,則需要通過(guò)內(nèi)插運(yùn)算計(jì)算出參考?jí)K,計(jì)算出的參考?jí)K需要加上解碼得出的誤差塊才能得到當(dāng)前參考?jí)K。本文給出了運(yùn)動(dòng)矢量的X分量和Y分量都是整象素長(zhǎng)度時(shí)的運(yùn)動(dòng)補(bǔ)償方法。根據(jù)運(yùn)動(dòng)矢量可直接在參考幀中找到參考?jí)K(8×8)。完成此功能的C語(yǔ)言函數(shù)如下:
  void mc_case_a2(unsigned char *pSrc, short SrcOffset, short SrcWidth, unsigned char *pDst, short RoundCtrl)
  { ……
  for (i=0; i《8; i++)
  {
  *(tmp_P_Dst+i) = *(tmp_P_Src+i);
  。..。..
  }
  }
  參數(shù)運(yùn)動(dòng)矢量SrcOffset對(duì)4(4個(gè)字節(jié)為一個(gè)字,長(zhǎng)32位)的余數(shù)可能是0、1、2、3。當(dāng)余數(shù)是0的時(shí)候,編譯后執(zhí)行代碼是按字讀取(LDW)的,這充分體現(xiàn)了TMS320C62X的優(yōu)點(diǎn),也使程序的運(yùn)行效率比較高。而當(dāng)余數(shù)不為0的時(shí)候,則可能是按字節(jié)讀取(LDB)或是按半字讀取(LDH),這使程序的運(yùn)行效率較低。視頻的編碼和解碼都要用到運(yùn)動(dòng)補(bǔ)償來(lái)重構(gòu)圖像,這是一個(gè)很費(fèi)時(shí)的操作,而且其代碼也是圖像處理中的核心代碼,這樣就要求編寫(xiě)高效的程序來(lái)完成此操作。為了使代碼的運(yùn)行效率更高,且結(jié)合TMS320C62X的硬件特點(diǎn),希望對(duì)于不同的運(yùn)動(dòng)矢量,做運(yùn)動(dòng)補(bǔ)償?shù)臅r(shí)候都能采用按字讀取和存儲(chǔ)的方式。這需要對(duì)運(yùn)動(dòng)矢量參數(shù)除以4,根據(jù)余數(shù)調(diào)整指針,使指針始終指向字對(duì)齊方式(而在C程序中當(dāng)前塊是char型的以字節(jié)方式存儲(chǔ)的,對(duì)其進(jìn)行移位處理只能是一個(gè)字節(jié)一個(gè)字節(jié)地進(jìn)行移位,這就使得在C程序中不能用和匯編程序同樣的方法來(lái)對(duì)程序進(jìn)行優(yōu)化),如運(yùn)動(dòng)矢量除以4以后的余數(shù)為1,為了使要取的8個(gè)象素對(duì)準(zhǔn)字訪問(wèn)方式,則要按圖1進(jìn)行操作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

请按住滑块,拖动到最右边
了解新功能

查看更多

广告

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費(fèi)下載
  2. 0.00 MB  |  1489次下載  |  免費(fèi)
  3. 2單片機(jī)典型實(shí)例介紹
  4. 18.19 MB  |  91次下載  |  1 積分
  5. 3S7-200PLC編程實(shí)例詳細(xì)資料
  6. 1.17 MB  |  27次下載  |  1 積分
  7. 4筆記本電腦主板的元件識(shí)別和講解說(shuō)明
  8. 4.28 MB  |  18次下載  |  4 積分
  9. 5開(kāi)關(guān)電源原理及各功能電路詳解
  10. 0.38 MB  |  9次下載  |  免費(fèi)
  11. 6基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
  12. 0.11 MB  |  4次下載  |  免費(fèi)
  13. 7基于單片機(jī)和 SG3525的程控開(kāi)關(guān)電源設(shè)計(jì)
  14. 0.23 MB  |  3次下載  |  免費(fèi)
  15. 8基于單片機(jī)的紅外風(fēng)扇遙控
  16. 0.23 MB  |  3次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費(fèi)
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費(fèi)
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費(fèi)
  7. 4LabView 8.0 專(zhuān)業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費(fèi)
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33562次下載  |  免費(fèi)
  11. 6接口電路圖大全
  12. 未知  |  30319次下載  |  免費(fèi)
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費(fèi)
  15. 8開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  16. 未知  |  21539次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935053次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537791次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233045次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191183次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183277次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138039次下載  |  免費(fèi)
主站蜘蛛池模板: 男人免费网站 | 国产精品久久久久影院免费 | 嘟嘟嘟影院免费观看视频 | 两个人看的www免费高清直播 | 无遮挡h肉3d动漫在线观看 | 97精品国产高清在线看入口 | 不卡的在线AV网站 | 欧美精品色视频 | aa级毛片毛片免费观看久 | 菠萝蜜国际一区麻豆 | WWW国产色情在线观看APP | www.三级 | 久久久久亚洲 | 99精品福利视频 | 男女生爽爽爽视频免费观看 | 把极品白丝老师啪到腿软 | 免费三级播放器 | 最新男同鸭子ktv | 国产亚洲精品久久777777 | 在线观看国产亚洲 | 亚洲人成在线观看一区二区 | 亚洲 欧洲 国产 日产 综合 | 轻轻cao| 久久本道久久综合伊人 | 最近中文字幕MV高清在线视频 | 一本色道久久88加勒比—综合 | 天美传媒麻豆精品 | 各种场合肉H校园1V1 | 国产毛A片啊久久久久久A | bbwxxxx交女警| 一二三四在线播放免费观看中文版视频 | 99re久久热在这里精品 | 成人久久欧美日韩一区二区三区 | 樱桃视频高清免费观看在线播放 | 日本高清在线一区二区三区 | 精品国产影院 | 国产不卡一卡2卡三卡4卡网站 | 果冻传媒视频在线播放 | 狠狠躁日日躁人人爽 | 岛国精品在线观看 | 国产精品人妻一区免费看8C0M |