色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 利用C和匯編語言混合編程實(shí)現(xiàn)DSP軟件設(shè)計(jì)

          利用C和匯編語言混合編程實(shí)現(xiàn)DSP軟件設(shè)計(jì)

          作者: 時(shí)間:2012-08-29 來源:網(wǎng)絡(luò) 收藏

          圖2給出了從CEVA-X1641 內(nèi)核FFT實(shí)現(xiàn)中摘取的匯編代碼例子。左邊第二行的add指令符合CEVA-X1641編譯器傳遞r0地址寄存器中指針參數(shù)的調(diào)用約定。右邊的pushd指令用于備份后面函數(shù)會(huì)用到的被調(diào)用方保存寄存器。


          圖2:從CEVA-X1641 內(nèi)核的FFT實(shí)現(xiàn)中摘取的一段匯編代碼。

          除了調(diào)用約定和寄存器使用約定外,一些編譯器在人工編寫的匯編代碼方面可能還會(huì)有一些額外的假設(shè)。這些假設(shè)通常是專門針對某個(gè)編譯器的,因此編譯器提供商會(huì)提供完善的資料和說明。

          用于C和匯編連接的常用C語言擴(kuò)展

          用于嵌入式平臺的大多數(shù)編譯器,特別是用于編程的編譯器,都具有豐富的C語言和連接功能。其中絕大部分功能不屬于標(biāo)準(zhǔn)C語言,因此被稱為C語言擴(kuò)展。下面列出的是其中有益于DSP編程的一些功能。

          內(nèi)聯(lián)匯編(inline assembly):該功能可以幫助編程人員將匯編指令插入C代碼。

          硬件寄存器綁定C變量:該功能經(jīng)常與匯編指令內(nèi)聯(lián)功能結(jié)合在一起,幫助內(nèi)聯(lián)匯編代碼訪問C語言級的變量(見圖3)。


          圖3:結(jié)合內(nèi)聯(lián)匯編和硬件寄存器綁定功能的代碼示例。

          存儲(chǔ)區(qū)屬性:該功能允許編程人員將上述變量和函數(shù)分配到獨(dú)特的用戶定義存儲(chǔ)區(qū),可以讓編程人員將C語言級單元分配到實(shí)際的存儲(chǔ)器位置,這對DSP應(yīng)用來說非常關(guān)鍵。

          用戶定義的調(diào)用約定:在某些情況下,匯編函數(shù)可以通過用戶定義的調(diào)用約定取得更好的優(yōu)化效果。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉