A. 如何用ccs6.0将程序烧进dsp
具体操作步骤如下:
(1)将DSP的MP/MC引脚置高,让DSP工作在微处理器方式。
(2)将第一段代码通过仿真器下载到DSP中,但不运行该代码。
(3)将第二段代码通过仿真器下载到DSP中,运行此代码。
(4)代码2运行结束后,去掉仿真器,并将MP/MC引脚置低,让DSP工作在微型计算机方式。
(5)复位DSP,DSP独立运行。
B. 对DSP而言,CCS用C语言编程和汇编编程,二者的效率相差多少
我用的是28XX系列的,不知道经验对你有没有用,因为不同系列的芯片多少有些差别。
TI提供的库已经相当可以了,兼顾易用与效率。我当时做过这样的测试
1. 用IQMATH实现
2. 直接C语言实现
3. C语言优化实现
4. 原生汇编实现
IQMATH的运行周期在1000左右,比方案3快几十个周期,比方案4慢几个周期,方案2是10000多个周期。
另外,因为只是单独测的算法,汇编之所以快是快在寄存器的使用上,操作数可以直接入寄存器,但是考虑到程序其他部分是用C语言编写的话,把操作栈的时间也加上,并不比方案1快。毕竟我对TI的汇编吃的也不透。
在编写上,无疑是方案1提供了最接近C语言风格的实现,几乎不用考虑ISA方面的问题。
另外对于执行效率,我觉得主要考虑三点:
1.分支的使用
CCS对C语言的优化我没做过太多比对。其实单从反汇编的结果看,我接触过的嵌入式开发环境的编译器都能做出很好的优化。但是几乎每个编译器都会在逻辑的优化上有欠缺——它只能对一些显而易见的判断条件进行优化,而在写程序的过程中,我们经常出于易读性的考虑,或者稳定性的考虑,或者其他的考虑加入几乎不会发生的分支,这样的分支判断会消耗一定比率的代码段执行效率,视乎代码段内有用功能的长度而定,越长这个比率越小,越短这个比率越高。
2.一般操作,就是各种赋值操作
在一般的操作上,编译器的优化已经很令人满意了,基本上可以作为编写汇编的范本。我觉得所谓效率能达到90%就是针对这个部分说的。
3.特殊操作,比如对整块内存的操作,或者是浮点运算上。
在一些特殊的操作上,就要看是否有现成的库,或者看硬件是否支持。比如对整块内存操作就别用循环一个字节一个字节的搬了。
以上三点都能考虑到的话,相信执行效率方面已经没有太大的提升空间了。
另外如果你的代码发生在初始化部分,也就是只在系统运行开始的时候运行一次,那么优化不优化其实没有太大的必要,除非你对系统初始化的时间有严格的要求。但是如果你的代码是作为任务要被反复运行的,那就有优化的必要了。
在CCS里有代码消耗时钟周期的统计,如果你觉得某段代码效率低下的话,可以先分段进行消耗时钟周期的计算,这样优化比较有针对性。
C. dsp 用什么编程
用的都是CCS编程。
CCS有两种工作模式:
1.软件模拟器模式:可以从DSP芯片中分离出来,在PC上模拟DSP的指令集和工作机制,主要用于前期算法的实现和调试。
2.硬件在线编程模式:在DSP芯片上实时运行,将应用程序的在线编程和调试与硬件开发板集成。
CCS的开发系统主要由以下组件构成:
1.TMS320C54x集成代码生成工具;
2.CCS综合开发环境;
3.DSP/BIOS实时内核插件及其应用程序接口API;
4.实时数据交换RTDX插件及相应的编程接口API;
5.由第三方TI公司对外提供多种应用模块插件。
(3)ccs进行dsp编程扩展阅读:
dsp编程中双重循环、多重循环的优化:
(1)多重循环拆成单层循环,减少循环层数;
例如,双重循环内一个百cycle只使用了一个乘法器,拆成单层循环后,一个cycle可使用2个乘法器,充分利用DSP乘法器资源,同时运算速度也会加快;
(2)如果循环次数较少,则将其放入外循环;如果循环次数更多,则将其放入内存循环;
(3)二维数组的双环:二维数组的行循环置于外环,列循环置于内环;
(4)避免循环内的乘除操作:循环内的乘除操作移到循环外,由加法代替。
D. dsp实验,ccs是什么环境,有什么作用
数字信号处理(digital signal processing,DSP)
Code Composer Studio
CCS是TI公司为DSP开发者提供的集成开发环境,用于编写,调试,仿真DSP程序的。
就相当于微软为C,C++开发者提供的VS,VC之类的集成开发环境。
在CCS中支持C语言和汇编语言编程,C++好像也支持。
E. 如何使用ccs进行dsp编程
使用ccs进行dsp混合编程(C+ASM) 2010-10-30 12:41 970379188 | 分类:其他编程语言 1、实现C调用汇编语言程序,在main函数中调用汇编实现的函数addarr2, addarr...