您的位置 首页 产品

DSP编程技巧之27—答疑解惑哪家强之(2)

答疑解惑哪家强?我们EEPW最强。。。所以接下来继续我们的答疑解惑。8. 含有CLA加速器的CPU必备的编译器选项?除了问答4、5、7提到的选项之外,CLA CPU对编译器也有一定

  答疑解惑哪家强?咱们EEPW最强。。。所以接下来持续咱们的答疑解惑。

  8. 含有CLA加速器的CPU必备的编译器选项?

  除了问答4、5、7说到的选项之外,CLA CPU编译器也有必定的要求,如表2所示。

  表2 CLA CPU必备的编译器选项

  9. “大内存模型”和“小内存模型”的差异是什么?

  C28x一般运用大内存模型,假定数据能够存放在存储单元的任何可用空间中。小内存模型的提出其实针对的是依据C27x形式CPU的代码,它默许数据是存放在低64k存储空间范围内的,除非运用far关键字进行特别指明。现在的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(可参阅http://www.eepw.com.cn/article/262926.htm)。

  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装置的时分顺便的,需求自己去下载装置支撑程序。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/chanpin/117670.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部