完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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 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安装的时候附带的,需要自己去下载安装支持程序。 |
|
|
|
只有小组成员才能发言,加入小组>>
692 浏览 0 评论
1106 浏览 1 评论
2473 浏览 5 评论
2808 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2646 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
653浏览 9评论
649浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
781浏览 6评论
628浏览 5评论
668浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 04:11 , Processed in 1.075780 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号