久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團論壇DSP專區DSP5000技術討論 → TI 5000 DSP C/C++和匯編語言混合編程


  共有8586人關注過本帖樹形打印

主題:TI 5000 DSP C/C++和匯編語言混合編程

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
TI 5000 DSP C/C++和匯編語言混合編程  發帖心情 Post By:2010-11-22 8:41:30

引言
  
TI 公司的5000系列低功耗16 b定點DSP,因其良好的性價比,在國內獲得了很大的普及。如何對5000系列DSP進行軟件開發也一直是業界關注的熱點。5000系列DSP的軟件設計通常有3種方法。

1.1用C/C++語言開發
  
TI公司提供了用于C/C++?語言開發的CCS平臺。該平臺包括優化ANSI C/C++ 編譯器,從而可以在源程序級進行開發調試。這種方法大大提高了軟件的開發速度和可讀性,方便了軟件的修改和移植。但是,C/C++代碼的效率還是無法與手工編寫的匯編代碼效率相比,如FFT程序。因為即使是最佳的C/C++編譯器,也無法在所有的情況下都能合理的利用DSP芯片提供的各種資源。此外,用C/C++語言實現DSP芯片某些硬件控制也不如匯編方便,有些甚至無法用C/C++語言實現。

1.2全匯編語言開發
  
TI公司提供了用于匯編語言開發的針對5000系列DSP的匯編語言。用戶可以用他進行軟件開發。這種方式可以更為合理的利用芯片提供的硬件資源,其代碼效率高,程序執行速度快。但是用匯編語言編寫程序是比較復雜的,一般來說,不同公司的芯片匯編語言是不同的,即使是同一公司的芯片,由于芯片的類型不同(如定點和浮點)、芯片的升級換代,其匯編語言也不同。因此,用匯編語言開發基于某種芯片的產品周期較長,并且軟件的修改和升級較困難。而且匯編語言的可讀性和可移植性較差。

1.3C/C++?語言和匯編語言混合編程開發
  
為了充分利用DSP芯片的硬件資源,更好發揮C/C++?語言和匯編語言進行軟件開發的各自優點,可以將兩者有機的結合起來,兼顧兩者優點,避免其弊端。因此,在很多情況下,采用混合編程方法能更好地達到設計要求,完成設計任務。

2 C/C++語言和匯編語言混合編程方法討論
  
C/C++語言和匯編語言混合編程的具體方法有以下幾種:
  
(1)獨立編寫C/C++程序和匯編程序,分開編譯或匯編形成各自的目標模塊,再用鏈接器將C/C++模塊和匯編模塊鏈接起來,這是一種靈活性較大的方法。但用戶必須自己維護各匯編模塊的入口和出口代碼,自己計算傳遞參數在堆棧中的偏移量,工作量稍大,但能做到對程序的絕對控制,也能滿足軟件設計結構化的要求。這是本文主要講述的方法。
  
(2)在C/C++程序中使用匯編程序中定義的變量和常量。
  
(3)在C/C++程序中直接內嵌匯編語句。這種方法可以在C/C++程序中實現C/C++語言無法實現的硬件控制功能,如修改中斷控制寄存器、中斷標志寄存器等。
  
(4)在C/C++源程序中使用內部函數直接調用匯編語言語句。
  
后3種方法由于在C/C++語言中直接嵌入了匯編語言的成分,容易造成程序混亂,C/C++環境被破壞,甚至導致程序崩潰,而編程者又很難對不良結果進行預期和有效控制。而如果采用第一種方法,只要遵循有關C/C++語言函數調用規則和寄存器規則,就能預見到程序運行的結果,保證程序正確。下面分別講述函數調用規則和寄存器規則,最后給出編程實例。

3函數調用規則
  
C/C++編譯器對函數調用強加了一組嚴格的原則。除了特殊的運行時間支持庫函數外,任何調用函數和被C/C++函數調用的函數都必須遵守這些原則。不遵守這些原則可能破壞C/C++環境并導致程序失敗。
  
圖1說明了典型的函數調用。在這個例子中,參數被傳遞到堆棧中調用者的參數塊,函數再使用這些參數調用被調用函數。注意,第一個參數是在A累加器中傳遞的。這個例子還說明了匯編器對被調用函數的局部幀的分配。局部幀包括局部變量塊和局部參數塊兩部分,其中局部參數塊是局部幀中用來傳遞參數到其他函數的部分。如果被調用函數沒有局部變量并且不再調用其他函數或需要調用的函數沒有參數,則不分配局部幀。對于混合編程而言,由于被調用函數是手工編寫的匯編程序,則局部幀由編程者自己完成分配,也不需要在堆棧中進行,而編譯器分配局部幀。

圖片點擊可在新窗口打開查看

(1)函數如何調用
  
函數(調用者)在調用被調用函數時執行以下任務。

①調用者將第一個(最左邊)的參數值放進累加器A。調用者將剩下的參數按相反的順序傳進參數塊,剩下的最左邊的參數在最低的地址。
②若函數返回一個結構,則調用者為該結構分配空間,然后用累加器A傳遞返回空間的地址給調用的函數。
③調用者調用函數。
  
(2)被調用函數如何響應。
  
被調用函數執行以下任務:
  
注意:如果被調用函數是C/C++函數,則下面步驟都是由匯編器自動完成。如果是混合編程,則如下步驟都是由編程者在被調用的匯編函數中完成的。
  
①    若被調用函數修改AR1,AR2或AR7,則將他們壓入堆棧。
  
②被調用函數通過從SP減去一個常數,為局部變量塊和局部參數塊分配存儲器。該常數按以下公式計算,即:
  
局部變量塊的大小+局部參數塊的大小+padding
  
padding值是為了保證SP對準偶數邊界而可能要求補充的一個字。之所以SP要對準偶數邊界,是因為5000系列DSP指令可一次讀寫存儲器的32 b,例如DLD,DADD等。這樣,編譯器必須保證所有32 b的目標都駐留在偶數邊界。
  
對于混合編程而言可以在匯編函數中,按本步驟的方法在堆棧中分配局部幀,但本方法相對比較麻煩,尤其該匯編函數還要調用其他函數時,所以,一般而言編程者通常用其他方法分配局部幀,比如用bss偽指令定義局部變量供函數使用。

③被調用函數為調用函數執行代碼。

④若函數返回一個值,則被調用函數將該值放在累加器A中;若函數返回一個結構,則被 調用函數將該結構復制到累加器A指到的存儲器塊;若調用者不返回函數值,則A被置0。

⑤被調用函數給SP上加上第二步計算的常數,釋放為局部變量和局部參數分配的存儲空間。對混合編程而言,如果編程者沒有在堆棧中分配局部幀,則本步驟省略。

⑥被調用函數恢復所有保存的寄存器。

⑦被調用函數執行返回。

4寄存器規則
  
(1)必須保存任何被函數修正的專用寄存器。專用寄存器包括:
  
①AR1,AR6,AR7
  
②堆棧指針(SP)
  
若對SP正常使用,不需要明顯的保存。換句話說,只要任何壓入堆棧的東西在函數返回之 前被彈回(因而保存了SP),匯編函數就可以自由的使用堆棧。任何非專用的寄存器都可以自由地使用而無需將他們保存。
  
(2)中斷函數必須保存他使用的所有寄存器。
  
(3)ARP在函數進入和返回時,必須為0,即當前輔助寄存器為AR0。函數執行時可以為其 他值。
  
(4)在默認的情況下,編譯器總是認為OVM為0。因此,若在匯編程序中將OVM置為1,則返回C/C++環境時,必須將其恢復為0。
  
(5)在默認的情況下,編譯器總是認為CPL為1。因此,若在匯編程序中將CPL清0,則在返回C/C++環境時,必須將其恢復為1。
  
(6)長整數和浮點數存儲在存儲器中的方法是最高有效字在低位地址。
  
(7)函數必須按前面有關被調用函數響應中所述的方法返回值。
  
(8)除了全局變量的初始化外,匯編語言模塊不能以任何目的使用cinit段。在boot? asm中的C/C++啟動程序假定cinit段完全由初始化表組成。將其他的信息放入cin it中將使初始化表產生混亂,并將產生不可預期的結果。
  
(9)在匯編語言模塊中,對可以從C/C++中訪問的變量和函數名需加上前綴“_”。對于僅用于匯編語言模塊中的標識符,應不得用下劃線開始。
  
(10)任何在匯編語言模塊中聲明的將要從C/C++訪問或調用的對象或函數,都必須在匯編語言中用?global偽指令聲明為全局變量。


支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

TI 5000 DSP C/C++和匯編語言混合編程








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
麻豆精品蜜桃一区二区三区| 麻豆成人久久精品二区三区小说| 9191国产精品| 欧美午夜精品免费| 日韩欧美国产电影| 久久久久久97三级| 国产精品久久午夜夜伦鲁鲁| 亚洲日本电影在线| 天涯成人国产亚洲精品一区av| 免费一级片91| 国产suv精品一区二区6| 91在线观看成人| 免费一区二区三区| 91精品1区2区| 欧美成人r级一区二区三区| 国产三级一区二区| 一区二区三区精品| 精品一区二区免费看| 成人免费观看av| 久久国产主播精品| 欧美午夜电影网| 国产三级久久久| 丝袜美腿高跟呻吟高潮一区| 懂色av噜噜一区二区三区av| 精品国产区在线| 欧美性色aⅴ视频一区日韩精品| 欧美白人最猛性xxxxx69交| 亚洲视频网在线直播| 另类人妖一区二区av| 国产二区不卡| 在线欧美一区二区| 国产欧美va欧美不卡在线| 亚洲动漫第一页| 成人福利电影精品一区二区在线观看| 九九99久久| 欧美日韩国产综合一区二区三区| 国产喂奶挤奶一区二区三区| 日韩在线一区二区三区| 97se亚洲国产综合自在线不卡| 亚洲 日韩 国产第一区| 日韩欧美一区二区三区在线| 亚洲一区在线视频观看| 风间由美一区二区av101| 日韩中文一区二区三区| 久久综合色鬼综合色| 天天影视涩香欲综合网| 99热这里都是精品| 欧美性大战久久久久久久蜜臀| 国产精品成人免费| 国产乱码一区二区三区| 亚洲日本精品国产第一区| 久久久久久久网| 国产乱人伦偷精品视频免下载| 欧美精品二区三区四区免费看视频| 日韩欧美黄色影院| 天天影视色香欲综合网老头| 国产精品一区视频| 91麻豆精品久久久久蜜臀| 亚洲综合999| 国产一区二区自拍| 久久综合av免费| 国产一区二区不卡老阿姨| 神马影院午夜我不卡| 中文字幕欧美三区| 成人免费va视频| 欧美精品一二三四| 日本伊人色综合网| 日本一区二区不卡高清更新| 国产精品日韩精品欧美在线| 国产69精品久久久久毛片 | 视频一区视频二区视频三区高| 国产亚洲一区二区在线观看| 国产精品1024| 在线观看欧美黄色| 亚洲成人中文在线| 免费看成人片| 国产精品美女久久久久高潮| av成人老司机| 欧美高清视频在线高清观看mv色露露十八 | 欧美性受xxxx黑人xyx| 亚洲成人动漫一区| 欧美午夜精品久久久久久蜜| 日本一区二区视频在线观看| 99国产精品久久久久久久久久 | 久久色在线观看| 国产麻豆视频一区二区| 中文字幕中文字幕在线中心一区| 亚洲色欲色欲www| 精品视频免费观看| 国产精品第五页| 久久av一区二区| 日韩毛片视频在线看| 久久亚洲一区二区| 一区二区三区在线不卡| 明星裸体视频一区二区| 国产精品久久三| 久久精品人人做人人爽电影| 日韩理论片在线| 日产中文字幕在线精品一区 | 久久99九九99精品| 欧美日韩一本到| 国产在线国偷精品免费看| 7777精品伊人久久久大香线蕉经典版下载 | 99精彩视频在线观看免费| 欧美电影免费观看高清完整版在线| 国产成人精品亚洲日本在线桃色| 欧美精品久久一区| 成人app软件下载大全免费| 久久综合九色欧美综合狠狠| 成人欧美一区二区| 亚洲男人天堂av网| 亚洲欧美国产精品桃花| 蜜桃免费网站一区二区三区| 欧美顶级少妇做爰| 99精品视频一区二区三区| 中文字幕乱码亚洲精品一区| 欧美日韩一区二区三| 日韩黄色小视频| 91精品国产91热久久久做人人| 暴力调教一区二区三区| 亚洲国产成人私人影院tom| 久久草.com| 首页国产欧美久久| 5858s免费视频成人| 114国产精品久久免费观看| 亚洲三级在线播放| 欧美专区日韩专区| 99国产精品久久久久| 亚洲欧美另类小说| 在线中文字幕不卡| aaa欧美色吧激情视频| 亚洲免费看黄网站| 日本久久精品电影| 99久久精品国产一区二区三区| 欧美亚洲丝袜| 欧美一二三在线| 97se亚洲综合| 亚洲免费av高清| 欧美综合色免费| 亚洲妇女屁股眼交7| 精品视频一区二区不卡| 亚洲国产精品一区二区尤物区| 久久97超碰国产精品超碰| 欧美精品123| 蜜臀av性久久久久蜜臀aⅴ流畅| 337p亚洲精品色噜噜狠狠| 肥熟一91porny丨九色丨| 国产精品我不卡| 亚洲视频在线一区| 亚洲三级一区| 成人精品亚洲人成在线| 婷婷精品国产一区二区三区日韩| 午夜激情综合网| 欧美久久久久久久久| 成人av免费网站| 国产女同互慰高潮91漫画| 欧洲一区二区在线| 久久99精品久久久久久| 精品伦理精品一区| 亚洲最大色网站| 欧美日韩三级视频| 成人网男人的天堂| 亚洲欧洲av色图| 欧美午夜片在线观看| 99国产精品国产精品久久| 亚洲视频一二三区| 欧美综合色免费| 国产成人精品日本亚洲11| 日韩成人一区二区三区在线观看| 日韩一级在线观看| 日本一区二区在线视频观看| 大白屁股一区二区视频| 国产精品污www在线观看| 亚洲日本无吗高清不卡| 国产中文字幕精品| 日韩毛片一二三区| 欧美日韩精品三区| 国产日本一区二区三区| 色噜噜狠狠色综合中国| 国产三级一区二区| 亚洲人成人77777线观看| 91免费观看视频| 亚洲综合色在线| 精品国产123| 一区二区不卡视频| 国产精品国模大尺度私拍| 久久99国产精品久久| 国产午夜亚洲精品理论片色戒| 色综合夜色一区| 国产精品视频免费观看| 精品一区二区成人精品| 亚洲成a天堂v人片| 亚洲综合丝袜美腿| 国产精品国产自产拍在线| 久久伊人蜜桃av一区二区| 777欧美精品| 欧美日韩一级片在线观看| 日本道色综合久久| 水蜜桃一区二区| 日本成人黄色|