导航:首页 > 源码编译 > dsp编译流程

dsp编译流程

发布时间:2022-07-28 12:44:23

A. 浅谈如何学习DSP软件开发

对于学习DSP重要的是理清外设的工作 构架,相应的寄存器如何设置,没有必 要对寄存器花太多的时间去研究,用的 时候能找到(寄存器的名称都是英文的 缩写,很好理解的)。学习DSP,先找 本中文教材入个门,之后你会发现好多 地方、尤其是真正要用的,往往也是最 复杂的地方书上都找不到,更谈不上做 什么项目了,这时候就要开始深入研究 Data Sheet,以及官网的源代码示例 有了之前的中文教材基础看起来就快多 了;学习DSP重要的不是会编程,而是 算法的研究(Matlab/Simulnk仿真就不

B. 请问DSP编程软件是什么,,应该用什么编程语言

DSP的编程软件是CCS开发平台,编程语言一般是C语言。

CCS有两种工作模式:

1、软件仿真器模式:可与DSP芯片分离,并在PC上模拟DSP指令集和工作机制,主要用于早期算法的实现和调试。

2、硬件在线编程模式:可以在DSP芯片上实时运行,结合硬件开发板的在线编程和调试应用程序。

CCS的开发系统主要由以下组件构成:

1、TMS320C54x集成代码生成工具。

2、CCS集成开发环境。

3、DSP / BIOS实时内核插件及其应用程序接口API。

4、RTDX插件,用于实时数据交换和相应的程序接口API。

5、TI以外的第三方提供的各种应用程序模块插件。

(2)dsp编译流程扩展阅读:

dsp编程中双重循环、多重循环的优化:

1、将多个循环分成单层循环以减少循环数;

例如,在双循环中,一个周期仅使用一个乘法器。 分成单层环路后,两个乘法器可以使用一个周期,充分利用DSP乘法器资源,运算速度也将提高。

2、循环次数少的放在外层循环,循环次数多的放在内存循环;

3、二维数组的双循环:二维数组的行循环置于外循环,列循环置于内循环;

4、避免在循环内进行乘法和除法运算:将循环内的乘法和除法运算尽可能移至循环外,并用加法代替。

C. DSP学习入门

DSP学习入门:
DSP的特点 :
对于没有使用过DSP的初学者来说,第一个困惑就是DSP其他的嵌入式处理器究竟有什么不同,它和单片机,ARM有什么区别.事实上,DSP也是一种嵌入式处理器,它完全可以完成单片机的功能.。
唯一的重要的区别在于DSP支持单时钟周期的"乘-加"运算.这几乎是所有厂家的DSP芯片的一个共有特征.几乎所有的DSP处理器的指令集中都会有一条MAC指令,这条指令可以把两个操作数从RAM中取出相乘,然后加到一个累加器中,所有这些操作都在一个时钟周期内完成.拥有这样一条指令的处理器就具备了
DSP功能:
具有这条指令就称之为数字信号处理器的原因在于,所有的数字信号处理算法中最为常见的算术操作就是"乘-加".这是因为数字信号处理中大量使用了内积,或称"点积"的运算.无论是FIR滤波,FFT,信号相关,数字混频,下变频.所有这些数字信号处理的运算经常是将输入信号与一个系数表或者与一个本地参考信号相乘然后积分(累加),这就表现为将两个向量(或称序列)进行点积,在编程上就变成将输入的采样放在一个循环buffer里,本地的系数表或参考信号也放在一个buffer里,然后使用两个指针指向这两个buffer.这样就可以在一个loop里面使用一个MAC指令将二者进行点积运算.这样的点积运算对与处理器来说是最快的,因为仅需一个始终周期就可以完成一次乘加.
了解DSP的这一特点后,当我们设计一个嵌入式系统时,首先要考虑处理器所实现的算法中是否有点积运算,即是否要经常进行两个数组的乘加,(记住数字滤波,相关等都表现为两个数组的点积)如果有的话,每秒要做多少次,这样就能够决定是否采用DSP,采用多高性能的DSP了.
浮点与定点 :
浮点与定点也是经常是初学者困惑的问题,在选择DSP器件的时候,是采用浮点还是采用定点,如果用定点是16位还是32位?其实这个问题和你的算法所要求的信号的动态范围有关.
定点的计算不过是把一个数据当作整数来处理,通常AD采样来的都是整数,这个数相对于真实的模拟信号有一个刻度因子,大家都知道用一个16位的AD去采样一个0到5V的信号,那么AD输出的整数除以2^16再乘以5V就是对应的电压.在定点DSP中是直接对这个16位的采样进行处理,并不将它转换成以小数表示的电压,因为定点DSP无法以足够的精度表示一个小数,它只能对整数进行计算.
而浮点DSP的优势在于它可以把这个采样得到的整数转换成小数表示的电压,并不损失精度(这个小数用科学记数法来表示),原因在于科学记数法可以表示很大的动态范围的一个信号,以IEEE754浮点数为例,
单精度浮点格式: [31] 1位符号 [30-23]8位指数 [22-00]23位小数
这样的能表示的最小的数是+-2^-149,最大的数是+-(2-2^23)*2^127.动态范围为20*log(最大的数/最小的数)=1667.6dB 这样大的动态范围使得我们在编程的时候几乎不必考虑乘法和累加的溢出,而如果使用定点处理器编程,对计算结果进行舍入和移位则是家常便饭,这在一定程度上会损失是精度.原因在于定点处理处理的信号的动态范围有限,比如16位定点DSP,可以表示整数范围为1-65536,其动态范围为20*log(65536/1)=96dB.对于32定点DSP,动态范围为20*log(2^32/1)=192dB,远小于32位ieee浮点数的1667.6dB,但是,实际上192dB对绝大多数应用所处理的信号已经足够了。
由于AD转换器的位数限制,一般输入信号的动态范围都比较小,但在DSP的信号处理中,由于点积运算会使中间节点信号的动态范围增加,所以主要考虑信号处理流程中中间结果的动态范围,以及算法对中间结果的精度要求,来选择相应的DSP.另外就是浮点的DSP更易于编程,定点DSP编程中程序员要不断调整中间结果的P,Q值,实际就是不断对中间结果进行移位调整和舍入.。
DSP与RTOS:
TI的CCS提供BIOS,ADI的VDSP提供VDK,都是基于各自DSP的嵌入式多任务内核.DSP编程可以用单用C,也可以用汇编,或者二者结合,一般软件编译工具都提供了很好的支持.我不想在这里多说BIOS,VDK怎么用这在相应的文档里说的很详细.我想给初学者说说DSP的RTOS原理.用短短几段话说这个复杂的东西也是挑战!
其实DSP的RTOS和基于其他处理器的通用RTOS没什么大的区别,现在几乎人人皆知的uCOSii也很容易移植到DSP上来,只要把寄存器保存与恢复部分和堆栈部分改改就可以.一般在用BIOS和VDK之前,先看看操作系统原理的书比较好.uCOS那本书也不错.
BIOS和VDK其实是一个RTOS内核函数集,DSP的应用程序会和这些函数连接成一个可执行文件.其实实现一个简单的多任务内核并不复杂,首先定义好内核的各种数据结构,然后写一个scheler函数,功能是从所有就绪任务中(通过查找就绪任务队列或就绪任务表)找出优先级最高的任务,并恢复其执行.然后在此基础上写几个用于任务间通信的函数就可以了,比如event,message box,等等.
RTOS一般采用抢先式的任务调度方式,举例说当任务A等待的资源available的时候,DSP会执行一个任务调度函数scheler,这个函数会检查当前任务是否比任务A优先级低,如果是的话,就会把它当前挂起,然后把任务A保存在堆栈里寄存器值全部pop到DSP处理器中(这就是所谓的任务现场恢复).接着scheler还会把从堆栈中取出任务A挂起时的程序执行的地址,pop到PC,使任务A继续执行.这样当前任务就被任务A抢先了.
使用RTOS之后,每个任务都会有一个主函数,这个函数的起始地址就是该任务的入口.一般每个任务的主函数里有一个死循环,这个循环使该任务周期地执行,完成一部分算法模块的功能,其实这个函数跟普通函数没任何区别,类似于C语言中的main函数.一个任务创建的时候,RTOS会把这个函数入口地址压入任务的堆栈中,好象这个函数(任务)刚发生过一次中断一样.一旦这个新创建任务的优先级在就绪队列中是最高的,RTOS就会从其堆栈中弹出其入口地址开始执行.
有一个疑问是,不使用RTOS,而是简单使用一个主循环在程序中调用各个函数模块,一样可以实现软件的调度执行.那么,这种常用的方法与使用RTOS相比有什么区别呢?其实,使用主循环的方法不过是一种没有优先级的顺序执行的调度策略而已.这种方法的缺点在于,主循环中调用的各个函数是顺序执行的,那么,即使是一个无关紧要的函数(比如闪烁一个LED),只要他不主动返回,也会一直执行直到结束,这时,如果发生一个重要的事件(比如DMA buffer full 中断),就会得不到及时的响应和处理,只能等到那个闪烁LED的函数执行完毕.这样就使整个DSP处理的优先次序十分不合理.而在使用了RTOS之后,当一个重要的事件发生时,中断处理会进入RTOS,并调用scheler,这时scheler 会让处理这一事件的任务抢占DSP处理器(因为它的优先级高).而哪个闪烁LED任务即使晚执行几毫秒都没任何影响.这样整个DSP的调度策略就十分合理。

D. 小弟刚接触DSP,别人推荐先从C2000系列开始学习,C2000也有很多系列,不知从哪种开始学习比较好急求

一.什么是DSP?(缺省)
二.DSP的C语言同主机C语言的主要区别?
1)DSP的C语言是标准的ANSI C,它不包括同外设联系的扩展部分,如屏幕绘图等。但在CCS中,为了方便调试,可以将数据通过prinf命令虚拟输出到主机的屏幕上。
2)DSP的C语言的编译过程为,C编译为ASM,再由ASM编译为OBJ。因此C和ASM的对应关系非常明确,非常便于人工优化。
3)DSP的代码需要绝对定位;主机的C的代码有操作系统定位。
4)DSP的C的效率较高,非常适合于嵌入系统。

三.DSP发展动态
1.TMS320C2000 TMS320C2000系列包括C24x和C28x系列。C24x系列建议使用LF24xx系列替代C24x系列,LF24xx系列的价格比C24x便 宜,性能高于C24x,而且LF24xxA具有加密功能。 C28x系列主要用于大存储设备管理,高性能的控制场合。
2.TMS320C3x TMS320C3x系列包括C3x和VC33,主要推荐使用VC33。C3x系列是TI浮点DSP的基础,不可能停产,但价格不会进一步下调。
3.TMS320C5x TMS320C5x系列已不推荐使用,建议使用C24x或C5000系列替代。
4.TMS320C5000 TMS320C5000系列包括C54x和C55x系列。 其中VC54xx还不断有新的器件出现,如:TMS320VC5471(DSP+ARM7)。 C55x系列是TI的第三代DSP,功耗为VC54xx的1/6,性能为VC54xx的5倍,是一个正在发展的系列。 C5000系列是目前TI DSP的主流DSP,它涵盖了从低档到中高档的应用领域,目前也是用户最多的系列。
5.TMS320C6000 TMS320C6000系列包括C62xx、C67xx和C64xx。此系列是TI的高档DSP系列。 其中C62xx系列是定点的DSP,系列芯片种类较丰富,是主要的应用系列。 C67xx系列是浮点的DSP,用于需要高速浮点处理的领域。 C64xx系列是新发展,性能是C62xx的10倍。
6.OMAP系列 是TI专门用于多媒体领域的芯片,它是C55+ARM9,性能卓越,非常适合于手持设备、Internet终端等多媒体应用。

四.5V/3.3V如何混接?
TI DSP的发展同集成电路的发展一样,新的DSP都是3.3V的,但目前还有许多外围电路是5V的,因此在DSP系统中,经常有5V和3.3V的DSP混接 问题。在这些系统中,应注意: 1)DSP输出给5V的电路(如D/A),无需加任何缓冲电路,可以直接连接。 2)DSP输入5V的信号(如A/D),由于输入信号的电压>4V,超过了DSP的电源电压,DSP的外部信号没有保护电路,需要加缓冲,如 74LVC245等,将5V信号变换成3.3V的信号。 3)仿真器的JTAG口的信号也必须为3.3V,否则有可能损坏DSP。

五.为什么要片内RAM大的DSP效率高?
目 前DSP发展的片内存储器RAM越来越大,要设计高效的DSP系统,就应该选择片内RAM较大的DSP。片内RAM同片外存储器相比,有以下优点: 1)片内RAM的速度较快,可以保证DSP无等待运行。 2)对于C2000/C3x/C5000系列,部分片内存储器可以在一个指令周期内访问两次,使得指令可以更加高效。 3)片内RAM运行稳定,不受外部的干扰影响,也不会干扰外部。 4)DSP片内多总线,在访问片内RAM时,不会影响其它总线的访问,效率较高。

六.为什么DSP从5V发展成3.3V?
超 大规模集成电路的发展从1um,发展到目前的0.1um,芯片的电源电压也随之降低,功耗也随之降低。DSP也同样从5V发展到目前的3.3V,核心电压 发展到1V。目前主流的DSP的外围均已发展为3.3V,5V的DSP的价格和功耗都价格,以逐渐被3.3V的DSP取代。
七如何选择DSP的电源芯片?
TMS320LF24xx:TPS7333QD,5V变3.3V,最大500mA。
TMS320VC33: TPS73HD318PWP,5V变3.3V和1.8V,最大750mA。
TMS320VC54xx:TPS73HD318PWP,5V变3.3V和1.8V,最大750mA; TPS73HD301PWP,5V变3.3V和可调,最大750mA。
TMS320VC55xx:TPS73HD301PWP,5V变3.3V和可调,最大750mA。
TMS320C6000: PT6931,TPS56000,最大3A。

八.软件等待的如何使用?
DSP的指令周期较快,访问慢速存储器或外设时需加入等待。等待分硬件等待和软件等待,每一个系列的等待不完全相同。
1)对于C2000系列: 硬件等待信号为READY,高电平时不等待。 软件等待由WSGR寄存器决定,可以加入最多7个等待。其中程序存储器和数据存储器及I/O可以分别设置。
2)对于C3x系列: 硬件等待信号为/RDY,低电平是不等待。 软件等待由总线控制寄存器中的SWW和WTCNY决定,可以加入最多7个等待,但等待是不分段的,除了片内之外全空间有效。
3)对于C5000系列: 硬件等待信号为READY,高电平时不等待。 软件等待由SWWCR和SWWSR寄存器决定,可以加入最多14个等待。其中程序存储器、控制程序存储器和数据存储器及I/O可以分别设置。
4)对于C6000系列(只限于异步存储器或外设): 硬件等待信号为ARDY,高电平时不等待。 软件等待由外部存储器接口控制寄存器决定,总线访问外部存储器或设备的时序可以设置,可以方便的同异步的存储器或外设接口。

九.中断向量为什么要重定位?
为了方便DSP存储器的配置,一般DSP的中断向量可以重新定位,即可以通过设置寄存器放在存储器空间的任何地方。 注意:C2000的中断向量不能重定位。

十.DSP的最高主频能从芯片型号中获得吗?
TI的DSP最高主频可以从芯片的型号中获得,但每一个系列不一定相同。
1)TMS320C2000系列:
TMS320F206-最高主频20MHz。
TMS320C203/C206-最高主频40MHz。
TMS320F24x-最高主频20MHz。
TMS320LF24xx-最高主频30MHz。
TMS320LF24xxA-最高主频40MHz。
TMS320LF28xx-最高主频150MHz。
2)TMS320C3x系列:
TMS320C30:最高主频25MHz。
TMS320C31PQL80:最高主频40MHz。
TMS320C32PCM60:最高主频30MHz。
TMS320VC33PGE150:最高主频75MHz。
3)TMS320C5000系列:
TMS320VC54xx:最高主频160MHz。
TMS320VC55xx:最高主频300MHz。
4)TMS320C6000系列:
TMS320C62xx:最高主频300MHz。
TMS320C67xx:最高主频230MHz。
TMS320C64xx:最高主频720MHz。

十一.DSP可以降频使用吗?
可以,DSP的主频均有一定的工作范围,因此DSP均可以降频使用。 字串5

十二.如何选择外部时钟?
DSP的内部指令周期较高,外部晶振的主频不够,因此DSP大多数片内均有PLL。但每个系列不尽相同。
1)TMS320C2000系列:
TMS320C20x:PLL可以÷2,×1,×2和×4,因此外部时钟可以为5MHz-40MHz。
TMS320F240:PLL可以÷2,×1,×1.5,×2,×2.5,×3,×4,×4.5,×5和×9,因此外部时钟可以为2.22MHz-40MHz。
TMS320F241/C242/F243:PLL可以×4,因此外部时钟为5MHz。 TMS320LF24xx:PLL可以由RC调节,因此外部时钟为4MHz-20MHz。
TMS320LF24xxA:PLL可以由RC调节,因此外部时钟为4MHz-20MHz。
2)TMS320C3x系列:
TMS320C3x:没有PLL,因此外部主频为工作频率的2倍。
TMS320VC33:PLL可以÷2,×1,×5,因此外部主频可以为12MHz-100MHz。
3)TMS320C5000系列:
TMS320VC54xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为0.625MHz-50MHz。
TMS320VC55xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为6.25MHz-300MHz。
4)TMS320C6000系列:
TMS320C62xx:PLL可以×1,×4,×6,×7,×8,×9,×10和×11,因此外部主频可以为11.8MHz-300MHz。
TMS320C67xx:PLL可以×1和×4,因此外部主频可以为12.5MHz-230MHz。
TMS320C64xx:PLL可以×1,×6和×12,因此外部主频可以为30MHz-720MHz

十三.如何选择DSP的外部存储器?
DSP的速度较快,为了保证DSP的运行速度,外部存储器需要具有一定的速度,否则DSP访问外部存储器时需要加入等待周期。
1)对于C2000系列: C2000系列只能同异步的存储器直接相接。 C2000系列的DSP目前的最高速度为150MHz。建议可以用的存储器有:
CY7C199-15:32K×8,15ns,5V;
CY7C1021-12:64K×16,15ns,5V; CY7C1021V33-12:64K×16,15ns,3.3V。
2)对于C3x系列: C3x系列只能同异步的存储器直接相接。 C3x系列的DSP的最高速度,5V的为40MHz,3.3V的为75MHz,为保证DSP无等待运行,分别需要外部存储器的速度<25ns和<12ns。建议可以用的存储器有:
ROM: AM29F400-70:256K×16,70ns,5V,加入一个等待;
AM29LV400-55(SST39VF400):256K×16,55ns,3.3V,加入两个等待(目前没有更快的Flash)

SRAM: CY7C199-15:32K×8,15ns,5V;
CY7C1021-15:64K×16,15ns,5V;
CY7C1009-15:128K×8,15ns,5V;
CY7C1049-15:512K×8,15ns,5V;
CY7C1021V33-15:64K×16,15ns,3.3V;
CY7C1009V33-15:128K×8,15ns,3.3V;
CY7C1041V33-15:256k×16,15ns,3.3V。
3)对于C54x系列: C54x系列只能同异步的存储器直接相接。 C54x系列的DSP的速度为100MHz或160MHz,为保证DSP无等待运行,需要外部存储器的速度<10ns或<6ns。建议可以用的存储器有:
ROM: AM29LV400-55(SST39VF400):256K×16,55ns,3.3V,加入5或9个等待(目前没有更快的Flash)。
SRAM: CY7C1021V33-12:64K×16,12ns,3.3V,加入一个等待;
CY7C1009V33-12:128K×8,12ns,3.3V,加入一个等待。
4)对于C55x和C6000系列: TI的DSP中只有C55x和C6000可以同同步的存储器相连,同步存储器可以保证系统的数据交换效率更高。
ROM: AM29LV400-55(SST39VF400):256K×16,55ns,3.3V。
SDRAM: HY57V651620BTC-10S:64M,10ns。
SBSRAM: CY7C1329-133AC,64k×32;
CY7C1339-133AC,128k×32。
FIFO:CY7C42x5V-10ASC,32k/64k×18。

十四.DSP芯片有多大的驱动能力?
DSP的驱动能力较强,可以不加驱动,连接8个以上标准TTL门。
十五.调试TMS320C2000系列的常见问题?
1)单步可以运行,连续运行时总回0地址: Watchdog没有关,连续运行复位DSP回到0地址。
2)OUT文件不能load到片内flash中: Flash不是RAM,不能用简单的写指令写入,需要专门的程序写入。CCS和C Source Debugger中的load命令,不能对flash写入。 OUT文件只能load到片内RAM,或片外RAM中。
3)在flash中如何加入断点: 在flash中可以用单步调试,也可以用硬件断点的方法在flash中加入断点,软件断点是不能加在ROM中的。硬件断点,设置存储器的地址,当访问该地址时产生中断。
4)中断向量: C2000的中断向量不可重定位,因此中断向量必须放在0地址开始的flash内。在调试系统时,代码放在RAM中,中断向量也必须放在flash内。

十六.调试TMS320C3x系列的常见问题?
1)TMS320C32的存储器配置: TMS320C32的程序存储器可以配置为16位或32位;数据存储器可以配置为8位、16位或32位。
2)TMS320VC33的PLL控制: TMS320VC33的PLL控制端只能接1.8V,不能接3.3V或5V。

十七.如何调试多片DSP?
对 于有MPSD仿真口的DSP(TMS320C30/C31/C32),不能用一套仿真器同时调试,每次只能调试其中的一个DSP; 对于有JTAG仿真口的DSP,可以将JTAG串接在一起,用一套仿真器同时调试多个DSP,每个DSP可以用不同的名字,在不同的窗口中调试。 注意:如果在JTAG和DSP间加入驱动,一定要用快速的门电路,不能使用如LS的慢速门电路。

十八.在DSP系统中为什么要使用CPLD?
DSP 的速度较快,要求译码的速度也必须较快。利用小规模逻辑器件译码的方式,已不能满足DSP系统的要求。 同时,DSP系统中也经常需要外部快速部件的配合,这些部件往往是专门的电路,有可编程器件实现。 CPLD的时序严格,速度较快,可编程性好,非常适合于实现译码和专门电路。

十九.DSP系统构成的常用芯片有哪些?
1)电源: TPS73HD3xx,TPS7333,TPS56100,PT64xx...
2)Flash: AM29F400,AM29LV400,SST39VF400...
3)SRAM: CY7C1021,CY7C1009,CY7C1049...
4)FIF CY7C425,CY7C42x5...
5)Dual port: CY7C136,CY7C133,CY7C1342...
6)SBSRAM: CY7C1329,CY7C1339...
7)SDRAM: HY57V651620BTC...
8)CPLD: CY37000系列,CY38000系列,CY39000系列...
9)PCI: PCI2040,CY7C09449...
10)USB: AN21xx,CY7C68xxx...
11)Codec:TLV320AIC23,TLV320AIC10...
12)A/D,D/A:ADS7805,TLV2543...
具体资料见

E. DSP如何创建一个新的工程以及编译

新建工程:
1.路径,文件名不得包含中文。
2.拷贝文件夹:common,headers.
3.添加cmd文件:common/cmd/28335_RAM_link.cmd headers/cmd/DSP28335_Headers_nonBIOS.cmd
4.必须添加的8个Source文件: common/source/ADC_cal.asm /CodeStartBranch.asm
/Defaultisr.c /PieCtrl.c /PieVect.c /SysCtrl.c /usDelay.asm headers/source/GlobalVariadleDefs.c
5.其他的文件在common/source里按需添加
6.添加自己写的 .c 文件:放置在工程里
7.右击工程文件,点击Build options
设置两个地方:
1.在Compiler下点击Advanced->将浮点型库支持选上(fpu32
点击Preprocesso填写头文件路径:在Path(-i)下写:
..\..\DSP2833x_headers\include;..\..\DSP2833x_common\include
2.在link的basic下将Suppress Banner(-q)的复选框勾起设置堆栈的大小:Stack Size(-heap)
设置为0x200 的Libraries 下设置Search path(-i):..\..\DSP2833x_common\include
Inic Libraries: rts2800_fpu32.lib

F. 什么是DSP编译环境

[编辑本段]数字信号处理
数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。
[编辑本段]DSP微处理器
DSP芯片DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。 DSP微处理器(芯片)一般具有如下主要特点: (1)在一个指令周期内可完成一次乘法和一次加法; (2)程序和数据空间分开,可以同时访问指令和数据; (3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬件支持; (5)快速的中断处理和硬件I/O支持; (6)具有在单周期内操作的多个硬件地址产生器; (7)可以并行执行多个操作; (8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。 当然,与通用微处理器相比,DSP微处理器(芯片)的其他通用功能相对较弱些。 DSP优点: 对元件值的容限不敏感,受温度、环境等外部参与影响小; 容易实现集成;VLSI 可以时分复用,共享处理器; 方便调整处理器的系数实现自适应滤波; 可实现模拟处理不能实现的功能:线性相位、多抽样率处理、级联、易于存储等; 可用于频率非常低的信号。 DSP缺点: 需要模数转换; 受采样频率的限制,处理频率范围有限; 数字系统由耗电的有源器件构成,没有无源设备可靠。 但是其优点远远超过缺点。
[编辑本段]DSP技术的应用
语音处理:语音编码、语音合成、语音识别、语音增强、语音邮件、语音储存等。 图像/图形:二维和三维图形处理、图像压缩与传输、图像识别、动画、机器人视觉、多媒体、电子地图、图像增强等。 军事;保密通信、雷达处理、声呐处理、导航、全球定位、跳频电台、搜索和反搜索等。 仪器仪表:频谱分析、函数发生、数据采集、地震处理等。 自动控制:控制、深空作业、自动驾驶、机器人控制、磁盘控制等。 医疗:助听、超声设备、诊断工具、病人监护、心电图等。 家用电器:数字音响、数字电视、可视电话、音乐合成、音调控制、玩具与游戏等。 生物医学信号处理举例: CT机示例CT:计算机X射线断层摄影装置。(其中发明头颅CT英国EMI公司的豪斯菲尔德获诺贝尔奖。) CAT:计算机X射线空间重建装置。出现全身扫描,心脏活动立体图形,脑肿瘤异物,人体躯干图像重建。 心电图分析。
基于DSP的智能视频监控系统
传统的视频监视系统是简单的非智能闭路电视(CCTV)系统,其缺点十分明显。这样的系统或者需要安保人员实时监视画面以捕捉关键事件,或者需要在事后对视频记录进行回放并进行人工分析,耗时耗力,成本高而效率低。近几年,DSP在智能视频监控系统方面的应用不断完善,正在逐渐取代传统的模拟非智能系统。 iSuppli公司2006年的一份分析报告曾指出,IP视频监控系统市场到2010年将增长近十倍。 IP监控的创新技术之一是“智能摄像机”,它拥有强大的数字信号处理器,能探测威胁并触发自动响应。可见,DSP芯片是智能监控的核心。
基于DSP的语音实时变速系统
在外语多媒体教学中,要求对语速进行快慢控制,以适应不同程度学生的需求。然而,传统的语音变速产品往往在教师改变语速的同时,也改变了原说话者的语调,不能达到教学的真正目的。因此,语音变速系统应当具备调整语速的同时,还需要保证原说话者语调保持不变的特点。基于DSP(TMS320C5409)的语音实时变速系统能够任意调整语音语速,达到外语多媒体教学的需求。
[编辑本段]DSP发展轨迹
DSP产业在约40年的历程中经历了三个阶段:第一阶段,DSP意味着数字信号处理,并作为一个新的理论体系广为流行;随着这个时代的成熟,DSP进入了发展的第二阶段,在这个阶段,DSP代表数字信号处理器,这些DSP器件使我们生活的许多方面都发生了巨大的变化;接下来又催生了第三阶段,这是一个赋能(enablement)的时期,我们将看到DSP理论和DSP架构都被嵌入到SoC类产品中。” 第一阶段,DSP意味着数字信号处理 。 80年代开始了第二个阶段,DSP从概念走向了产品,TMS32010所实现的出色性能和特性备受业界关注。方进先生在一篇文章中提到,新兴的DSP业务同时也承担着巨大的风险,究竟向哪里拓展是生死攸关的问题。当设计师努力使DSP处理器每MIPS成本降到了适合于商用的低于10美元范围时,DSP在军事、工业和商业应用中不断获得成功。到1991年,TI推出价格可与16位微处理器不相上下的DSP芯片,首次实现批量单价低于5美元,但所能提供的性能却是其5至10倍。 到90年代,多家公司跻身DSP领域与TI进行市场竞争。TI首家提供可定制 DSP——cDSP,cDSP 基于内核 DSP的设计可使DSP具有更高的系统集成度,大加速了产品的上市时间。同时,TI瞄准DSP电子市场上成长速度最快的领域。到90年代中期,这种可编程的DSP器件已广泛应用于数据通信、海量存储、语音处理、汽车电子、消费类音频和视频产品等等,其中最为辉煌的成就是在数字蜂窝电话中的成功。这时,DSP业务也一跃成为TI最大的业务,这个阶段DSP每MIPS的价格已降到10美分到1美元的范围。 21世纪DSP发展进入第三个阶段,市场竞争更加激烈,TI及时调整DSP发展战略全局规划,并以全面的产品规划和完善的解决方案,加之全新的开发理念,深化产业化进程。成就这一进展的前提就是DSP每MIPS价格目标已设定为几个美分或更低。
[编辑本段]DSP未来发展
1、数字信号处理器的内核结构进一步改善,多通道结构和单指令多重数据(SIMD)、特大指令字组(VLIM)将在新的高性能处理器中将占主导地位,如Analog Devices的 ADSP-2116x。ADSP产品 2、DSP 和微处理器的融合: 微处理器是低成本的,主要执行智能定向控制任务的通用处理器能很好执行智能控制任务,但是数字信号处理功能很差。而DSP的功能正好与之相反。在许多应用中均需要同时具有智能控制和数字信号处理两种功能,如数字蜂窝电话就需要监测和声音处理功能。因此,把DSP和微处理器结合起来,用单一芯片的处理器实现这两种功能,将加速个人通信机、智能电话、无线网络产品的开发,同时简化设计,减小PCB体积,降低功耗和整个系统的成本。例如,有多个处理器的Motorola公司的DSP5665x,有协处理器功能的Massan公司FILU-200,把MCU功能扩展成DSP和MCU功能的TI公司的TMS320C27xx以及Hitachi公司的SH-DSP,都是DSP和MCU融合在一起的产品。互联网和多媒体的应用需要将进一步加速这一融合过程。 3、DSP 和高档CPU的融合: 大多数高档GPP如Pentium 和PowerPC都是SIMD指令组的超标量结构,速度很快。LSI Logic 公司的LSI401Z采用高档CPU的分支预示和动态缓冲技术,结构规范,利于编程,不用担心指令排队,使得性能大幅度提高。Intel公司涉足数字信号处理器领域将会加速这种融合。 4、DSP 和SOC的融合: SOCSOC(System-On-Chip)是指把一个系统集成在一块芯片上。这个系统包括DSP 和系统接口软件等。比如Virata公司购买了LSI Logic公司的ZSP400处理器内核使用许可证,将其与系统软件如USB、10BASET、以太网、UART、GPIO、HDLC等一起集成在芯片上,应用在xDSL上,得到了很好的经济效益。因此,SOC芯片近几年销售很好,由1998年的1.6亿片猛增至1999年的3.45亿片。1999年,约39%的SOC产品应用于通讯系统。今后几年,SOC将以每年31%的平均速度增长,到2004年将达到13亿片。毋庸置疑,SOC将成为市场中越来越耀眼的明星。 5、DSP 和FPGA的融合: FPGA是现场编程门阵列器件。它和DSP集成在一块芯片上,可实现宽带信号处理,大大提高信号处理速度。据报道,Xilinx 公司的Virtex-II FPGA对快速傅立叶变换(FFT)的处理可提高30倍以上。它的芯片中有自由的FPGA可供编程。Xilinx公司开发出一种称作Turbo卷积编译码器的高性能内核。设计者可以在FPGA中集成一个或多个Turbo内核,它支持多路大数据流,以满足第三代(3G)WCDMA无线基站和手机的需要,同时大大WCDMA无线基站节省开发时间,使功能的增加或性能的改善非常容易。因此在无线通信、多媒体等领域将有广泛应用。
[编辑本段]Windows系统DSP
DSP版本=授权提供版(Delivery Service Partner),类似于OEM版,比正式版便宜一点。

G. ok5718 中如何运行dsp程序c66X的.out程序文件已经编译好,Linux下如何输入命令去

咨询记录 · 回答于2021-07-03

H. DSP怎么烧程序

各种DSP烧写程序的方法
推荐1、TMS320LF24xx, TMS320LF28xx:
利用CCS里面自带的flash burn插件,很容易烧写。
不必专门编程,只要输入.out文件即可。

2、TMS320C5x
需要自己手工编写BootLoader程序,和烧写flash的程序,有点麻烦。
利用CCS装载烧写flash的程序,运行之,写入flash中。

3、TMS320C62xx(除了C6211)
需要自己手工编写BootLoader程序,和烧写flash的程序,非常麻烦。
关于怎样编写C62xx的BootLoader程序,凡是我能找到的国内的论文,都是错误的,纯粹为了骗学位。
利用CCS装载烧写flash的程序,运行之,写入flash中。

4、TMS320C64xx(包括C6211)
需要自己手工编写BootLoader程序,和烧写flash的程序,比较麻烦。不过还好,能找到国内的高手请教。
利用CCS装载烧写flash的程序,运行之,写入flash中。

I. DSP程序过长如何编译

不一样编译么?遇到什么问题?超出存储空间啦?

J. DSP编译过程中出现 can not open source file "C:\DOCUM~1\ADMINI~1\LOCALS~1\TEMP\include.if"

出现这个问题的原因是因为你的CCS软件没有安装在所在盘符的根目录下,最好的解决办法就是卸载CCS软件,重新安装。一定要选择安装在根目录下。

阅读全文

与dsp编译流程相关的资料

热点内容
pdf转换word编辑 浏览:446
35岁程序员实习期恐慌 浏览:701
如何做一个系统u盘文件夹名字 浏览:968
如何确认哪个ip重启了服务器 浏览:130
照片压缩软件绿色版 浏览:109
pgp基于什么体系加密 浏览:637
python合法赋值语句格式 浏览:713
程序员数学线性代数 浏览:624
看帧率app如何使用 浏览:525
从DHC服务器租用IP地址 浏览:477
编译怎么学 浏览:333
数码管显示0到9plc编程 浏览:667
服务器是为什么服务的 浏览:769
java定义数据类型 浏览:878
安卓pdf手写 浏览:431
什么是app开发者 浏览:288
android闹钟重启 浏览:105
程序员失职 浏览:522
在云服务器怎么改密码 浏览:588
服务器pb什么意思 浏览:944