<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    DSP編程技巧之27---答疑解惑哪家強之(2)

    發布時間:2014-12-15 11:45    發布者:看門狗
    關鍵詞: DSP編程
    作者:paradoxfx 來源:電子產品世界

      8. 含有CLA加速器的CPU必備的編譯器選項?

      除了問答4、5、7提到的選項之外,CLA CPU對編譯器也有一定的要求,如表2所示。

      表2 CLA CPU必備的編譯器選項


      9. “大內存模型”和“小內存模型”的區別是什么?

      C28x一般使用大內存模型,假設數據可以存放在存儲單元的任何可用空間中。小內存模型的提出其實針對的是基于C27x模式CPU的代碼,它默認數據是存放在低64k存儲空間范圍內的,除非使用far關鍵字進行特別指明,F在的DSP器件片上存儲空間普遍比較大,顯然使用大內存模型更為合理。

      10. 什么是“統一內存模型”?

      統一內存模型“--unified_memory”指在“統一的內存模式”下產生代碼。顧名思義,就是把所有的存儲空間定義為一個整體,不管它是片上的SRAM、ROM、OTP還是使用XINTF接口的外部的存儲單元,通常把外設的寄存器也映射到數據存儲空間中。這樣編譯器在編譯時就可以使用PREAD/PWRITE/MAC等指令來處理大部分的內存復制memcpy調用和結構體的分配。

      11. 實時運行庫RTS的作用是什么?

      在計算機程序設計領域,運行時庫是一種被編譯器用來實現編程語言內置函數,以提供該語言程序運行時(執行)支持的一種特殊的計算機程序庫。這種庫一般包括基本的輸入輸出或是內存管理等支持。在DSP的編程中,它們的作用是用來建立C/C++代碼運行的環境,主要包括以下幾個方面:

      1) ANSI/ISO C/C++標準庫。

      2) C的輸入輸出I/O庫。

      3) 為主機的操作系統提供底層的I/O支持。

      4) DSP的啟動程序_c_int00

      12. RTS中函數的描述從哪里可以找到?

      在問答11中,RTS包含了四大類內容。前面兩者因為是標準C/C++的內容,并沒有在TI的文檔中給出額外的說明;此外,C++ STL庫和它們的API的使用也沒有TI官方文檔。此時我們可以參考標準C/C++的書籍、資料、網頁等。如果希望最權威的參考,可以查閱TI提供的參考鏈接:

      1) The Standard C++ Library: A Tutorial and Reference, Nicolai M. Josuttis, Addison-Wesley, ISBN 0-201-37926-0

      2) The C++ Programming Language (Third or Special Editions), Bjarne Stroustrup, Addison-Wesley, ISBN 0-201-88954-4 or 0-201-70073-5.

      3) C++ online reference at http://www.cplusplus.com/

      4) C代碼的靜態檢查工具http://www.splint.org/

      當然,作為DSP的開發人員,高效保質地完成代碼工作才是最重要,上面那些書籍、鏈接,請慢慢研究吧。。。

      14. 從哪里可以找到RTS庫文件?

      通常情況下,隨CCS軟件安裝而提供的RTS庫文件都位于CCS安裝目錄中,編譯器Codegen對應的子目錄中。例如,在新版本的CCS6.x中,C28x的編譯器位于CCS安裝目錄下面的\tools\compiler\c2000_6.2.5\lib中(根據編譯器版本的不同,倒數第二個目錄名字會有相應的變化)。

      在老版本的CCS中,RTS庫文件被默認安裝到操作系統的程序目錄中,例如C:\Program Files\Texas Instruments\C2000 Code Generation Tools 5.2.4。

      對于其它一些特殊的庫,例如FPU快速運行支持庫FastRTS,則在下載安裝了FastRTS安裝包之后,位于其安裝目錄之下的lib文件夾中,例如\FPUfastRTS\V100\lib\rts2800_fpu32_fast_supplement.lib。如果安裝了controlSuite軟件,則可以通過它內置的說明或者搜索功能找到對應的庫文件。

      15. RTS庫那么多,我們應該使用哪一個?

      隨著器件類型、特性的不斷發展,現在在CCS安裝目錄下叫RTSxxx.lib的文件已經非常非常多了,那么到底哪些是適合我們使用的呢?對于C28x器件,總結如表3所示。

      表3 C28x DSP使用的實時運行支持庫




      16. 已經啟用了rts2800_fpu32_eh.lib ,為什么還要用rts2800_fpu32_fast_supplement.lib?

      在含有FPU的器件上,如果在不啟用--float_support=fpu32編譯器選項的情況下使用浮點數編程,那么它的運算還是CPU來執行的,執行效率就和從定點CPU上直接使用浮點運行進行編程一樣低;啟用了--float_support=fpu32編譯器選項之后,浮點數的加法、減法、乘法等操作則有FPU來完成,執行效率自然要高出很多。

      使用rts2800_fpu32_fast_supplement.lib庫的目的,則是為了調用DSP的ROM中的數學表快速計算一些數學函數,包括atan、atan2、cos、division、isqrt、sin、sincos、sqrt等。如果不使用rts2800_fpu32_fast_supplement.lib庫來完成這些數學運算,則編譯器默認情況下是使用標準C/C++數學庫里的函數來完成這些運算的,效率自然不能和查找ROM中的數學表一樣迅速。

      那么CCS為什么不附帶安裝FastRTS庫呢?這可能和在定點DSP的使用中,IQmath庫也不是附帶安裝是通用的道理吧,其它相類似的,一些信號處理函數庫,例如FFT、IFFT等也不是CCS安裝的時候附帶的,需要自己去下載安裝支持程序。
    本文地址:http://www.portaltwn.com/thread-135069-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區
    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷