使用ccs进行dsp编程--fft

使用ccs进行dsp编程--fft

ID:34134432

大小:490.59 KB

页数:14页

时间:2019-03-03

使用ccs进行dsp编程--fft_第1页
使用ccs进行dsp编程--fft_第2页
使用ccs进行dsp编程--fft_第3页
使用ccs进行dsp编程--fft_第4页
使用ccs进行dsp编程--fft_第5页
资源描述:

《使用ccs进行dsp编程--fft》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、使用CCS进行DSP编程(二)——实现FFTpacificxu现在讨论使用TI公司的CCS进行DSP编程,首先假定读者对CCS的使用已经比较了解,如果读者还不太了解,请参阅《使用CCS进行DSP编程(一)——CCS编程入门》及其他CCS的学习文档。作数字信号处理的同志们总是喜欢用FFT来对信号处理系统做检验,下面用闻亭公司的C6xP板、C6xPa板硬件实现FFT算法,本算法对其他的C6x板同样实用(只是硬件资源稍微有差异),并通过闻亭公司的PCI仿真器对目标板加载运行,运行结果在CCS中可视化显示。首先启动CCSSetup,对仿真器硬件进行设置,本人使用的是闻亭公司PCI的仿真器自

2、带的驱动wtxds6xxxpci.dvr,设置画面如下:下面就可以运行CCS了,在CCS中,创建一个新的Project,我的工程文件放置在如下的目录中,读者可以放在自己喜欢的目录下:双击“+”展开fft.mak,可以看到整个工程文件是空的,我们需要把*.c、*.cmd、*.lib文件添加到工程文件中,首先是*.c文件,本例中是test.c文件,同样的方法可以用来添加其他的文件。双击工程中的源文件,会在右边的窗口中看见原码:如果*.c文件不存在,可以在CCS集成开发环境中生成,本例中test.c的主程序源代码如下:调用的子程序有三个:从上面的源程序可以看到,使用CCS的C语言编程跟普

3、通的C语言编程没有太大的区别,这正是TI所追求的,兼容的ANSIC标准和如此的编译高效率也正是TI的领先之处。读者可以不必学习烦琐的汇编和线性汇编,直接对数字信号处理的算法进行研究,同时享受高速的处理速度,只有在对速度要求极严的条件下,不得不使用汇编和线性汇编,那时读者已经有了一定的基础,再学习汇编语言已是水到渠成。而使用C语言编程是大势所趋。如果有人对算法本身感兴趣,请参阅胡广书老师的《数字信号处理—理论、算法与实现》第5章快速傅立叶变换,这里不在对算法进行展开讨论。程序的结构本身很简单,使用过C语言的朋友一看就明白,不需要再做进一步的说明,需要指出几点,1.本程序中的math.

4、h与VisualC++中的math.h是不同的,TI的CCS专门为数学计算作了运行时库,是利用硬件对计算作加速的,与VisualC++中的速度是不可同日而语的。因此如果我们需要用到相应的“头文件”,就应该在TI的目录中查找,同时要包含相应的运行时库(*.lib)文件,我一直在强调这一点,初学者往往忽略这一点而出现许多编译链接错误。下面的演示中还会看到这一点。2.本例是以定点DSP芯片‘C6201为例的。如果对定点运算还不太熟悉,只好找些文档来学习一下了,这里也不再展开。在浮点DSP芯片‘C6701中本程序可以不加修改地运行,但浮点DSP芯片中可以直接进行有硬件支持的浮点运算,速度会

5、更快。3.CCS的C语言中的数据类型是与硬件相关的,使用时需要注意。char8bitsshort16bitsint32bitslong40bitsfloat32bitsdouble64bitsTMS320C6000OnlineProgrammer'sGuide(SPRH048)Copyright?2000TexasInstruments接下来继续进行,向工程中添加*.cmd文件。读者现在应该会执行这个操作了,如果没有就自己造一个吧,也可以拿别人的来改造一下。其中有些不太明白也没有关系,但是在与具体的硬件相关的地方还是要搞明白。首先要搞明白目标板“target”上到底有多少存储空间,

6、包括DSP芯片内部有多大空间,目标板上有多少外部存储器(SDRAM、SBSRAM、双口RAM),以及它们的其始地址和长度,以我使用的闻亭公司‘C6Xpa板为例,存储器类型起始地址存储器大小结束地址SDRAM0x20000004M*32bit(0x400000*4)0x3000000SBSRAM0x400000128k*32bit(0x20000*4)0x480000DPRAM0x14000004k*32bit(0x1000*4)0x1404000在这里还要强调一点,是“*32bit”,因此SDRAM的结束地址是0x2000000+0x400000*4=0x3000000而不是0x2

7、000000+0x400000=0x2400000其他存储空间也是如此。许多同志们忽略了这一点,在使用数组、指针及对空间地址操作时造成“不可理解”的错误,“我往仫个地址写数怎么找不到,#%^#&^%%^———坏了!”,好好研究一下,就不好意思这么快下结论了。下面是我用的*.cmd文件的源代码,需要的话可以拿去用喔。里面“.vec、.text….”的东西可以先不考虑,留给CCS去处理好了。只要保证定义的空间在物理上存在就可以了。心急的朋友会开始编译了,又会出现下面的结果

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。