一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>DSP>基于DSP的混合編程關(guān)鍵技術(shù)探究

基于DSP的混合編程關(guān)鍵技術(shù)探究

2017-10-25 | rar | 0.2 MB | 次下載 | 1積分

資料介紹

引 言
  DSP數(shù)字信號(hào)處理器)憑借其高速數(shù)字信號(hào)處理功能、實(shí)時(shí)性強(qiáng)、低功耗、高集成度等嵌入式微計(jì)算機(jī)的特點(diǎn),已在通信、航空航天、工業(yè)控制、醫(yī)療、國(guó)防、汽車等領(lǐng)域得到了廣泛的應(yīng)用。TMS320LF240xA DSP(以下簡(jiǎn)稱LF240xA)是美國(guó)TI公司推出的高性能16位數(shù)字信號(hào)處理器,它具有運(yùn)算速度快,在片集成的外設(shè)豐富等特點(diǎn),故又稱其為DSP控制器。應(yīng)用領(lǐng)域主要針對(duì)工業(yè)測(cè)控、電機(jī)控制、家用電器和消費(fèi)電子等場(chǎng)合。
  LF240xA的軟件開(kāi)發(fā)過(guò)程,既可以使用匯編語(yǔ)言,也可以使用C語(yǔ)言。匯編語(yǔ)言的代碼執(zhí)行效率高、運(yùn)行速度快,可以直接對(duì)寄存器進(jìn)行操作,充分發(fā)揮了DSP控制器的硬件性能;但其開(kāi)發(fā)的工作量大,程序可讀性、移植性差。與匯編語(yǔ)言不同的是,C語(yǔ)言可讀性強(qiáng)、編程簡(jiǎn)單、調(diào)試方便,適合編寫(xiě)結(jié)構(gòu)和算法比較復(fù)雜的程序。然而,對(duì)于控制來(lái)說(shuō),用C語(yǔ)言開(kāi)發(fā)程序也有其明顯的缺點(diǎn):首先,C語(yǔ)言代碼有冗余,降低了執(zhí)行效率,對(duì)于實(shí)時(shí)性要求很高的某些控制領(lǐng)域來(lái)說(shuō)不符合要求;其次,C語(yǔ)言無(wú)法實(shí)現(xiàn)某些底層的操作。
  在具體軟件開(kāi)發(fā)過(guò)程中,可以將匯編語(yǔ)言和C語(yǔ)言結(jié)合起來(lái)編程,發(fā)揮各自的優(yōu)點(diǎn)。這樣既能滿足實(shí)時(shí)性要求又能實(shí)現(xiàn)所需的功能,同時(shí)兼顧程序的可讀性和編程效率。為此,了解及掌握C語(yǔ)言和匯編語(yǔ)言的混合編程技術(shù)對(duì)于DSP的軟件開(kāi)發(fā)具有重要的意義。
  1 準(zhǔn)備工作
  在進(jìn)行混合編程之前,首先要?jiǎng)?chuàng)造一個(gè)運(yùn)行的基本環(huán)境。這個(gè)基本環(huán)境包括存儲(chǔ)空間的分配、DSP寄存器映射地址的定義以及中斷向量的定義等方面。
  (1)存儲(chǔ)空間的分配
  命令文件(*.cmd)用來(lái)實(shí)現(xiàn)對(duì)程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器空間的分配。一是目標(biāo)存儲(chǔ)器定義(由MEMORY命令定義),二是各段的定位(由SECTIONS命令定義)。
 ?。?)寄存器映射地址的定義
  頭文件(*.h)用來(lái)定義所用到的DSP控制器內(nèi)部寄存器的映射地址,以及用戶自定義的常量、寄存器等。通常,頭文件在主程序的開(kāi)始,使用匯編指示符“.include”和“.copy”對(duì)其調(diào)用。頭文件的定義有2種方式。第1種是以指針變量的形式定義各種寄存器,即采用如下形式:
  volatile unsigned int T1CMPR Ox7402第2種則是用宏定義的方式定義各種寄存器的名稱:
  # define T1CMPR Ox7402
 ?。?)中斷向量的定義
  LF240xA內(nèi)部提供了多個(gè)中斷,如INTl~I(xiàn)NT6、TRAP等。復(fù)位中斷向量(c_intO)是在實(shí)時(shí)運(yùn)行支持庫(kù)(rts2xx.1ib)中定義的一種特殊的中斷,它的作用是先進(jìn)行軟件堆棧操作,然后初始化全局變量,最后調(diào)用主程序main()。所以當(dāng)復(fù)位(Reset)時(shí),程序跳轉(zhuǎn)到c_int0進(jìn)行相應(yīng)的處理。中斷向量表則是將主程序中用到的中斷子程序和相應(yīng)中斷級(jí)別類型連接起來(lái)的一個(gè)簡(jiǎn)單的跳轉(zhuǎn)指令表。表中每個(gè)中斷向量占2個(gè)字,在命令文件中將其聲明到程序存儲(chǔ)器空間的0000h~003Fh。
  2 混合編程的一般方法
  對(duì)于LF240xA的混合編程一般有3種方法:一、對(duì)C語(yǔ)言程序編譯后形成的匯編程序進(jìn)行手工修改與優(yōu)化;二、在C語(yǔ)言程序中直接嵌人匯編語(yǔ)句;三、分別編寫(xiě)C語(yǔ)言程序和匯編語(yǔ)言程序,然后獨(dú)立編譯成目標(biāo)代碼模塊,再進(jìn)行鏈接。第一種編程方式要求對(duì)匯編與C語(yǔ)言都極其熟悉,并且這樣的編程方式對(duì)程序的可讀性和擴(kuò)展性的負(fù)面影響比較大,一般不建議使用。第二種方法適用于語(yǔ)句執(zhí)行頻率非常高,并且C編程與匯編編程效率差異較大的情況,例如進(jìn)入中斷的通用中斷子程序等。第三種方式是混合編程最常用的方式之一,在這種方式下,C語(yǔ)言程序與匯編語(yǔ)言程序均可使用另一方定義的函數(shù)與變量。下面著重介紹后兩種方法。
  2.1 C語(yǔ)言程序中嵌入?yún)R編語(yǔ)言
  C語(yǔ)言程序支持asm指令,所以可以利用這條指令直接將匯編語(yǔ)句嵌入到C語(yǔ)言程序中。LF240xA中一些C語(yǔ)言無(wú)法操作的控制位,可以采用這種方式來(lái)實(shí)現(xiàn)。這種方法只需在匯編語(yǔ)句兩邊加上雙引號(hào)并用小括號(hào)括起來(lái),前面再加上asm關(guān)鍵字,即“asm(“匯編語(yǔ)句”);”。需要注意的是,匯編語(yǔ)句不能緊挨著前一個(gè)雙引號(hào),它們之間必須用空格、Tab或標(biāo)號(hào)開(kāi)頭。例如,在匯編語(yǔ)言中開(kāi)中斷指令SETC INTM,嵌入到C語(yǔ)言中為“asm(“SETCINTM”);”。這種方式雖然操作簡(jiǎn)單,但是匯編代碼很有可能破壞原來(lái)的C語(yǔ)言環(huán)境,從而導(dǎo)致不可預(yù)料的結(jié)果。因此只提倡在程序開(kāi)始的系統(tǒng)初始化部分少量使用,而在C語(yǔ)言中嵌入實(shí)現(xiàn)某一完整功能的多句匯編語(yǔ)言時(shí),不提倡采用這種方式。
  2.2 C語(yǔ)言與匯編語(yǔ)言程序相互調(diào)用
 ?。?)C語(yǔ)言程序調(diào)用匯編函數(shù)
  C語(yǔ)言程序中調(diào)用的匯編函數(shù),在匯編語(yǔ)言中其名稱以程序標(biāo)號(hào)的形式出現(xiàn)。程序標(biāo)號(hào)作為操作數(shù)用.global進(jìn)行定義,在前面加下劃線“_”。匯編函數(shù)也可以利用累加器給C語(yǔ)言程序傳遞返回值。
  LF240xA有8個(gè)輔助寄存器(AR0~AR7)可供使用,在C語(yǔ)言環(huán)境中這些寄存器都有明確的分工。
 ?、貯R0:幀指針(Frame Pointer,F(xiàn)P)。LF240xA只提供了大小為8個(gè)字的硬件棧,不能滿足需要。因此,C環(huán)境定義了一段特殊的存儲(chǔ)器空間,作為軟件棧。軟件棧的作用是分配局部變量、傳遞函數(shù)的參數(shù)、保存處理器的狀態(tài)、保存臨時(shí)結(jié)果等。AR0指向軟件棧中函數(shù)局部數(shù)據(jù)空間的起始處。
 ?、贏Rl:軟件棧的棧頂指針(Stack Pointer,SP)。ARl為指向軟件棧棧頂?shù)膶S弥羔槨?br />   ③AR2:局部變量指針(Local Variable Pointer,LVP)。AR2存放局部變量的偏移量,與AR0(FP)一起對(duì)局部變量進(jìn)行尋址定位。
 ?、蹵R6、AR7:寄存器型變量。在C語(yǔ)言程序中用register修飾的變量存放在AR6、AR7中。
 ?、軦R3~AR5:用戶自定義。AR3~AR5沒(méi)有特殊的約定,可以由用戶自由決定其用途。在匯編程序的入口處,假設(shè)ARP已經(jīng)被設(shè)置為ARl,這是由C編譯器自動(dòng)完成的。C語(yǔ)言程序調(diào)用匯編函數(shù)時(shí),匯編函數(shù)程序必須遵循下述規(guī)范:
 ?、?gòu)挠布褩V袕棾龇祷氐刂?,然后把它壓入軟件堆棧?br />  ?、诎袰程序的數(shù)據(jù)結(jié)構(gòu)指針FP壓入堆棧;
 ?、廴绻麉R編程序改變了AR6或AR7,也需要把它們壓入堆棧;
 ?、芊峙渚植繑?shù)據(jù)結(jié)構(gòu);
 ?、輬?zhí)行匯編程序的實(shí)際任務(wù)代碼;
 ?、奕绻麉R編程序有返回值,則把這個(gè)返回值放入累加器中;
  ⑦設(shè)置ARP為ARl;
  ⑧解除分配的局部數(shù)據(jù)結(jié)構(gòu);
 ?、崛绻鸄R6和AR7曾經(jīng)被保存過(guò),則從軟件堆?;謴?fù)它們的值;
 ?、鈴能浖褩;謴?fù)FP;
 ?、习衍浖褩V写鎯?chǔ)的返回地址壓入硬件堆棧;
 ?、蟹祷亍?br />
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(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 專業(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)