DSP-算法- 精华资料 (全是DSP工程师遇到的问题)[转帖]

合集下载

DSP常见问题及解决

DSP常见问题及解决

问:我测试你们的程序的时候,go main 进不去主函数,进入的是一段汇编。

是怎么回事?答:程序如果要进行设断点,观察变量等操作,要先调入project文件,然后再调入out文件。

如果是可以直接执行能看到结果的,就直接调入out文件,run就可以。

问:CY68013的固件程序怎么修改?答:在把QQ2812都研究清楚了,有精力有兴趣自己可以买一本EZ-USB的书好好看看。

在此之前,请不要随便更改固件代码,因为一旦出错,可能带来不必要的麻烦。

固件代码是通过USBControlPanel,使用USB接口进行下载的。

:2812的主频是最大150M,我如果想设为100M是在那里设置?答:打开工程,在Source文件夹下,打开DSP28_SysCtro.c文件,找到如下语句,修改即可。

// Initalize PLLSysCtrlRegs.PLLCR = 0x02;///锁相环产生的时钟频率定标,这里配置为30M问:为什么我的程序在SRAM中正常,烧入Flash后不对?答:1、请先确认你编译的时候使用了flash.cmd,推荐使用我们提供的flash.cmd,如果自己更改了这个文件,请先确认cmd文件的正确性;2、编译的时候,如果选择release模式,请检查一下build option,把其中的opt level改为none,即取消编译优化选项,很多语句在优化的时候可能会产生错误的优化结果。

或者选择debug模式编译,烧写正确后再改为release模式,通过对比两种模式的编译选项也能看出其中的区别。

3、程序在flash中运行会比在ram中运行大概慢20%,因此对于一些时序敏感的外设,比如usb总线,就有可能需要调整时序,否则就会有问题。

问:数码管LED显示的时候发送的数据是怎么规定和产生的?答:其实如果自己看程序和原理图自己就可以知道是怎么产生的。

数码管数据如下:Uint16SpiCode[]={0x7E7E,0x2929,0x2c2c,0x6666,0xa4a4,0xa0a0,0x3e3e,0x2020,0x2424,0x22 22,0xe0e0,0xb1b1,0x6868,0xa1a1,0xa3a3,0xffff,0xdfdf};数码管的笔画对应关系如下:63 742 01 5就是说0~7分别对应笔画的a~h,在原理图看就是分别连接的Q0~Q7这个数码管的型号是LG3611BH,是共阳级的,也就是说某个笔画为0的时候,这个笔画被点亮。

DSP常见问题及解决

DSP常见问题及解决

问:我测试你们的‎程序的时候,go main 进不去主函数‎,进入的是一段‎汇编。

是怎么回事?答:程序如果要进‎行设断点,观察变量等操‎作,要先调入pr‎o ject文‎件,然后再调入o‎u t文件。

如果是可以直‎接执行能看到‎结果的,就直接调入o‎u t文件,run就可以‎。

问:CY6801‎3的固件程序‎怎么修改?答:在把QQ28‎12都研究清‎楚了,有精力有兴趣‎自己可以买一‎本EZ-USB的书好‎好看看。

在此之前,请不要随便更‎改固件代码,因为一旦出错‎,可能带来不必‎要的麻烦。

固件代码是通‎过USBCo‎n trolP‎a nel,使用USB接‎口进行下载的‎。

:2812的主‎频是最大15‎0M,我如果想设为‎100M是在‎那里设置?答:打开工程,在Sourc‎e文件夹下,打开DSP2‎8_SysC‎t ro.c文件,找到如下语句‎,修改即可。

// Inital‎i ze PLLSysCtr‎l Regs.PLLCR = 0x02;///锁相环产生的‎时钟频率定标‎,这里配置为3‎0M问:为什么我的程‎序在SRAM‎中正常,烧入Flas‎h后不对?答:1、请先确认你编‎译的时候使用‎了flash‎.cmd,推荐使用我们‎提供的fla‎s h.cmd,如果自己更改‎了这个文件,请先确认cm‎d文件的正确‎性;2、编译的时候,如果选择re‎l ease模‎式,请检查一下b‎u ild option‎,把其中的op‎t level改‎为none,即取消编译优‎化选项,很多语句在优‎化的时候可能‎会产生错误的‎优化结果。

或者选择de‎b ug模式编‎译,烧写正确后再‎改为rele‎a se模式,通过对比两种‎模式的编译选‎项也能看出其‎中的区别。

3、程序在fla‎s h中运行会‎比在ram中‎运行大概慢2‎0%,因此对于一些‎时序敏感的外‎设,比如usb总‎线,就有可能需要‎调整时序,否则就会有问‎题。

DSP编程的几个关键问题(精)

DSP编程的几个关键问题(精)

DSP编程的几个关键问题摘要:对DSP串口的DMA传输方式使用中可能遇到的疑难问题、汇编指令歧义及C语言混合编程容易犯的错误作了列举分析,对Bootload编程的疑难点做出了实例解释。

关键词:汇编指令的歧义 Bootload Bug McBSP Multi-FrameDSP芯片凭其优异的性能在高速计算领域有着巨大的应用前景。

但其应用所涉及的知识非常庞杂。

本文以TI公司320C54X系列为蓝本进行提纯,所有认识都是笔者在实际工作中亲手实践所得。

当程序调不通不知该从何处下手时,此文也许会有所帮助。

这些关键点有些是TMS320C5409所触有而有些是与DSP所共有的。

1 McBSP(Multichannel Buffered Serial Port)串口利用DMA中的多帧(Multi-Frame)方式通信的中断处理在实际通信应用中,一个突发之后,程序必须为下一个突发作准备。

因此一般采用串口的DMA多帧方式但在串口以DMA方式传输数据时却有一些问题要讨论。

首先DMA的传输同步事件应设McBSP的传输事件即XEVT,这样一字节传输后会自动准备另一字节(McBSP的READY上升沿触发DMA传输)。

中断发生时意味着一个块已传完,这时DMA的使能自动关闭,McBSP的READY将一直保持高状态。

但是在下一次突发传输直接使能DMA 时却启动不了传输(相信会有许多我遇到此类问题)。

这是因为无法产生McBSP触发启动所需的READY上升沿。

解决办法是在中断程序中先关闭McBSP的发送,使READY=0,随后在程序中发送使能DMA,再打开McBSP的发送即可。

如先打开McBSP的发送后打开DMA,也是不会工作的。

因为McBSP的READY已经由0变到1了,无法再产生READY上升沿。

2 关闭DMA与关闭McBSP的区别在通信领域,为了充分利用DSP的片上外设资源,常常利用DMA把从串口来的数据或要发的数据放入缓冲区,再处理。

DSP面试常见问题

DSP面试常见问题

DSP常见问题1.DSP与普通的微处理器的不同?单周期指令:大多数DSP都拥有流水结构,即每条指令都由片内多个功能单元分别完成取指、译码、取数、执行等步骤,这样可以大大提高系统的执行效率。

它可以在一个时钟周期内执行一条语句。

快速乘法器:信号处理算法往往大量用到乘加(multiply-accumulate,MAC)运算。

DSP有专用的硬件乘法器,它可以在一个时钟周期内完成MAC运算。

硬件乘法器占用了DSP芯片面积的很大一部分。

(与之相反,通用微处理器采用一种较慢的、迭代的乘法技术,它可以在多个时钟周期内完成一次乘法运算,但是占用了较少了硅片资源)。

多总线:DSP有分开的代码和数据总线(一般用术语“哈佛结构”表示),这样在同一个时钟周期内可以进行多次存储器访问——这是因为数据总线也往往有好几组。

有了这种体系结构,DSP就可以在单个时钟周期内取出一条指令和一个或者两个(或者更多)的操作数。

地址发生器:DSP有专用的硬件地址发生单元,这样它可以支持许多信号处理算法所要求的特定数据地址模式。

这包括前(后)增(减)、环状数据缓冲的模地址以及FFT 的比特倒置地址。

地址发生器单元与主ALU和乘法器并行工作,这就进一步增加了DSP 可以在一个时钟周期内可以完成的工作量。

硬件辅助循环:信号处理算法常常需要执行紧密的指令循环。

对硬件辅助循环的支持,可以让DSP高效的循环执行代码块而无需让流水线停转或者让软件来测试循环终止条件。

数据格式:除了标准的整数型格式外,DSP一般支持定点和(或)浮点数。

对数据格式和精度的选择取决于应用程序所需,例如:16位定点DSP可以满足语音信号处理和控制所需24位和32位定点DSP可以满足高质量音频信号处理所需32位浮点DSP可以满足图形和图像处理所需1:DSP采用改进的Harvard结构,程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,而单片机多数采用的是冯•罗依曼结构,所有的操作都必须经过累加器A,很容易造成瓶颈效应。

DSP原理分析(精)

DSP原理分析(精)

目录概论第一章DSP原理分析第二章怎样辨别选择摄像机第三章红外摄像机的误区第四章常见视频干扰分析第五章阵列红外摄像机特点第六章摄像机基本故障排除第七章镜头参数概论现今的安防行业到是像在春秋战国时代,各路诸侯割地为王。

没有一种团结的向心力。

客户拖欠货款,小作坊的地下工厂粗制滥造。

就因为这样,引起的话题及争议也最多,大家爬文也是越爬越迷糊,因此,在这里把相关知识做个介绍,大家吹吹牛,真理越辩越明,虽说”水清则无鱼”,但总不能一天到晚打迷糊仗,消费者的权益也得照顾一下。

其实摄像机方案没什么太深奥,只是知道的人太少了,卖的人不清楚就算了,连厂家也搞不太懂,加上每个人都不肯说,搞的神神秘秘的,又找不到资料,弄得市面上所谓”假货”一堆,迟早把市场搞死,干脆花个时间整理一下,让大家搞清楚些,来维护我们这些正规工厂的权益,也有利于行业的健康持续发展!第一章DSP 原理分析原理分析图:上图介绍每一块就是一颗晶片,全部合起来就是一个”方案”,先解释各晶片的功能: CCD: 是Charge Coupled Device(电荷耦合器件)的缩写,它是一种半导体成像器件,因而具有灵敏度高、抗强光、畸变小、体积小、寿命长、抗震动等优点。

就像是人的眼睛,把光影像转成电子讯号,靠的就是上头的感光点,每一点就像一颗太阳能电池,被光照到后会产生电能,依照光的强度不同,会产生不同大小的电能.V-Driver:CCD里头每一点被光照到产生电能,那如何取出来?就是靠这颗V-DRIVER,它会产生不同的脉波,把CCD每点的讯号”挤”出来.CDS/AGC: CCD挤出来的讯号,在这颗晶片内做”修整”,送进D.S.P到以上阶段,记住!全都是模拟讯号D.S.P:重头戏来了,D.S.P 是Digital Signal Processor 的缩写,也就是数位讯号处理器,可是不是说CDS/AGC出来是模拟讯号吗?因此DSP里头包了一颗Decoder (A/D Converter, 模拟数位转换器),先把模拟转成数位,再做一大堆的运算(颜色,亮度,白平衡…..),然后再把数位转模拟(Enco der,也是包在DSP里头),就是视频输出了.挺复杂的,我们所谓的方案就是以用那颗DSP来说的) T.G:Timing Gen: 这是在控制整个处理过程的快慢用的,现在一般看不到了,都包在DSP内了.简单解释了一下,我们会发现一件事,其实摄像机内大部份还是模拟电路.言归正传,开始讲各方案,先从SONY讲起:这颗DSP推出也有10年了,当初把这方案叫SS-1,差点害的一堆工程师切腹自杀,因为一直搞不定,做出来的机子一直有问题,索尼也不承认,过了一阵子又推出一颗新的,就是CXD2163BR 叫SS-1M ,不过大家叫习惯了,还是说SS-1SS-1 可接高解CCD (ICX408AK NTSC ,ICX409AK PAL) 及低解CCD(ICX404AK NT SC ,ICX405AK PAL), 因为是早期的DSP,这颗特难搞定,要想出来的产品能有良好的一致性,须花很多精神, 相对的成本就高, 又因为索尼长久以来只有这颗DSP能接高解CCD(有够不争气的),因此大家只要想到索尼高解就会想到这颗DSP. 不过这颗DSP有个特点, 就是能做电源同步,导致现在还淘汰不了.这颗DSP在1999年推出,当初把这方案做为低价机种,只能接低解CCD,那时是CXD3140, 还是问题一堆,一直搞不定,做出来的机子还是有问题,索尼还是不承认,来年又偷偷推出一颗新的,就是CXD3141R,总算稳定了,后来又出了CXD3142,多了镜像功能.其他两颗都一样,叫SS-1 1SS-11 只能接低解CCD,但在那时品质还是比其他牌子好些,所谓420线的机子就是这样来的,拿低解机来冒充高解机也是从这方案来的,最先搞这花样的是深圳的一家大厂(目前也挺大的), SS-11不能做电源同步(不是不行,是噪讯太大),现在SONY 420线的几乎就用这方案.这颗DSP在2004年推出,距离SS-1已有8,9年了,因此总得大大炒做,就是所谓的520条机种,但翻遍技术资料,跟本看不到”520”这个字眼,这颗DSP还是承袭索尼优良传统: 有问题!!!! 就是过热,!DSP本身温度会高到60多度,不怕的就去用吧,卖到俄罗斯肯定没问题,其实只要不碰到较差的环境,要撑过保固期应该是没问题的,SS-HQ1能接高低解CCD,而且电源同步也没问题,基本上比SS-1好多了(除了发热外)这颗DSP在2005年推出,是目前索尼最新的DSP,在结构上很像是SS-HQ1的改良版(不热了!) 应该有把2163淘汰掉的架式, 嗯! 如果没问题就不叫索尼了!这颗目前的缺点是电源同步杂讯太大.SS-11X能接高低解CCD,还有颗BGA版的,不过没植球,贴片厂看了直犯愁.说完索尼,该谈SHARP了,这简单多了,SHARP 目前只有一颗:好像是2002年推出的,刚好索尼CCD大缺货,给了SHARP爬起来的机会,那时又有几个台湾人为了卖芯片,拿了现成的线路方案到处兜,所以应该说国内摄像机厂百花齐放,SHARP这颗晶片功不可没(那几个台湾人也有功劳,呵呵!),也就是这原因,搞的劣等品一堆,让人一听到SHARP就是烂货便宜货的感觉,颗晶片还不其实这错,主要是很容易就上手,不像SS-1 及SS-11那么难搞定,而且这颗DSP能接高低解CCD.不过,电源同步还是不行,还有搭配的SHARP CCD 品质没有SONY好,加上烂厂一堆,无形中让SHARP有矮了一截的感觉,是有点可惜.当然,这颗DSP也能接SONY CCD,只是没有人那么二百五罢了.D4 还有一颗BGA版,把CDS/AGC, V-DRIVER都包进来了, 只是噪讯太大,只有特殊用途才用到还有, SHARP新的DSP D5 也快出来了.接下来是松下部份,目前松下就剩D5 独撑大局:大约2000年左右推出的,索尼SS-11就是要跟这颗兢争才推出的,可能是松下无心在这市场的关系,推的不是挺成功,而且松下CCD有照度较差的缺点,加上当初价格比索尼还高,除了几家重点厂家外,用的厂不多,一样,电源同步不行,其他特性还不错.而且可以接高低解CCD除了SONY ,SHARP, Panasonic 外,还有其他不被人注意的DSP,一并介绍:韩国NEXTCHIP公司在几年前推出的,主要接SHARP低解或SONY低解CCD,也就是一般说的半索尼,索尼缺货时可用韩国A1 pro 代,就成了”假索尼”,品质嘛,,,就见人见智啰!这是台湾去年出的D.S.P, 在功能上,是很夸张的一颗,可接SONY,SHARP,松下,三星,A1 ,及高低解CCD, 可做电源同步.以上说到的都是目前厂家有用到的,至于像敏通用的DSP是他们业务机密,韩国M6是卖板子的,还有三星用ICX409AK带菜单号称540线的板子,那就不说了,别影响人做生意!第二章怎样辨别选择摄像机太多人都有一样的问题: 我买的索尼机到底是真是假?是好是坏?因为,一样的規格,价錢差了那么多!首先要講一個概念: 几乎所有人的机器,材料成本都差不多! 此话怎说?拆过机子的人都知道,一般抢机的结构就是一块机芯加块尾板,再锁上机壳.机芯占絕大部份成本,而机芯上最主要的就是CCD,DSP,CDS/AGC,V-Driver, EEPROM,EVR(索尼机才有),等主要零件,大家进价都差不多,其他电阻电容二三极管就不用说了,相差有限,电路板及貼片费更是标准价,所以在成本上大家都是差不多,如何同中求異? 有以下方法:1.机壳: 找個公模,省下开模费,压铸件用次级别料,反正上了漆也看不出来,冲压件用薄一點的,又沒人会拿脚踩它! 这样可以省下几块钱.2.滤光片: 找片玻璃镀膜的,又是几块钱下来了,画质变差点? 便宜嘛!3.电源电路: 用简单些的,也可省下1块多,就是噪讯大了些.4.尾板: 拿個铁片钻些洞, 把接头锁上,电路板省了,順便把視頻驱动电路连开关都省了,那么便宜的机子谁会装那么贵的镜头? 这样又省了几块。

dsp学习注意问题

dsp学习注意问题

EDMA事件(2010-11-30 16:43:41)转载分类:DSP学习笔记DM642处理器片上带有一个EDMA控制器,如果把CPU的工作比喻为前台事务,那么EDMA的工作则视为后台事务,不占用CPU时间,这种机制提高了CPU的工作效率。

DM642的EDMA控制器具有64个EDMA通道,每个通道均与DM642的某个事件关联,EDMA事件触发和CPU中断触发类似,只要正确设置了EDMA通道,满足触发条件后在程序中便会自动进入相应的EDMA事件处理函数。

下面来分析一下,关于视频通道与EDMA通道的关联DM642的EDMA事件和EDMA通道之间的映射关系如下:EDMA通道EDMA事件名称事件描述16 VP0EVTYA 发生在VP0 A通道上与视频Y分量相关的事件17 VP0EVTUA 发生在VP0 A通道上与视频U分量相关的事件18 VP0EVTVA 发生在VP0 A通道上与视频V分量相关的事件24 VP0EVTYB 发生在VP0 B通道上与视频Y分量相关的事件25 VP0EVTUB 发生在VP0 B通道上与视频U分量相关的事件26 VP0EVTVB 发生在VP0 B通道上与视频V分量相关的事件38 VP1EVTYB 发生在VP1 B通道上与视频Y分量相关的事件39 VP1EVTUB 发生在VP1 B通道上与视频U分量相关的事件40 VP1EVTVB 发生在VP1 B通道上与视频V分量相关的事件41 VP2EVTYA 发生在VP2 B通道上与视频Y分量相关的事件42 VP2EVTUB 发生在VP2 B通道上与视频U分量相关的事件43 VP2EVTVB 发生在VP2 B通道上与视频V分量相关的事件56 VP1EVTYA 发生在VP1 A通道上与视频Y分量相关的事件57 VP1EVTUA 发生在VP1 A通道上与视频U分量相关的事件58 VP1EVTVA 发生在VP1 A通道上与视频V分量相关的事件59 VP2EVTYA 发生在VP2 A通道上与视频Y分量相关的事件60 VP2EVTUA 发生在VP2 A通道上与视频U分量相关的事件61 VP2EVTVA 发生在VP2 A通道上与视频V分量相关的事件EDMA是数字信号处理器用于快速数据交换的重要技术,具有独立于CPU的后台批量数据传输能力,能够满足实时图像处理中高速数据传输的要求。

dsp教程

dsp教程

dsp教程
我来给你介绍一下DSP(数字信号处理)的基本知识和技巧。

DSP是一种通过数字方式处理和分析信号的技术。

它广泛应
用于音频、图像、视频、通信等领域。

首先,我们需要了解数字信号和模拟信号的区别。

数字信号是离散的,它以一系列离散的数值表示,而模拟信号是连续的,它以连续的变化表示。

在DSP中,我们常常需要进行数字信号的采样和量化。

采样
是指将连续的模拟信号转化为离散的数字信号,而量化是指将连续的信号幅度值映射为离散的数值。

然后,我们需要学习数字滤波器的设计和应用。

滤波器可以在频域上对信号进行过滤和去噪。

常见的滤波器类型包括低通滤波器、高通滤波器、带通滤波器和带阻滤波器。

此外,我们还需要了解数字信号的时域和频域分析方法。

时域分析主要是分析信号的幅度和相位特性,而频域分析则是分析信号在频率上的特性。

最后,了解数字信号处理的应用和实践也很重要。

DSP技术
广泛应用于音频处理、语音识别、图像处理、通信系统等领域。

通过学习和掌握上述基本知识和技巧,你将能够理解和应用DSP相关的原理和算法。

希望这些介绍对你有帮助!。

DSP系统设计常用问答

DSP系统设计常用问答

DSP系统设计常用问答1.什么是DSP系统设计?DSP系统设计是指使用数字信号处理(Digital Signal Processing,DSP)技术设计和实现数字信号处理系统的过程。

DSP系统设计涉及到多个方面,包括信号采集、信号处理算法设计、系统架构设计和实时性能优化等。

2.哪些应用领域常用DSP系统设计?DSP系统设计广泛应用于许多领域,包括通信、音频处理、图像处理、医学工程、雷达和传感器等。

在通信领域中,DSP系统设计用于调制解调、编码和解码、通道估计和均衡等。

音频处理方面,DSP系统设计可用于音频编码、音频增强和音频合成等。

在图像处理领域,DSP系统设计常用于图像滤波、图像压缩和图像识别等。

3.DSP系统设计的基本流程是什么样的?基本的DSP系统设计流程可以分为五个步骤:系统需求分析、算法设计、硬件架构设计、软件实现和系统测试。

首先,需要明确系统的需求,如输入输出的信号特性、系统的实时性要求等。

然后,根据需求设计合适的信号处理算法。

接下来,需要根据算法设计硬件架构,包括选择适当的DSP芯片、接口电路的设计等。

然后,通过编程实现设计的算法。

最后,进行系统测试,确保系统满足设计需求。

4.DSP系统设计中常用的编程语言是什么?常用的编程语言包括C和C++。

C语言是DSP系统设计中最常用的编程语言,因为它具有良好的移植性、高效性和灵活性。

C++语言则在C语言的基础上加入了面向对象的特性,更易于维护和扩展。

5.DSP系统设计中的实时性能如何优化?为了实现实时性能,需要注意以下几点。

首先,选择适当的硬件平台,如DSP芯片的频率和存储容量等。

其次,对算法进行优化,如降低计算复杂度、使用高效的数据结构等。

另外,通过并行计算和硬件加速等技术提高计算效率。

最后,合理设计系统架构,如使用中断和DMA传输等技术降低系统延迟。

6.DSP系统设计中常用的数据存储格式是什么?在DSP系统设计中,常用的数据存储格式有原始音频或图像数据、时域数据和频域数据。

dsp遇到问题及处理方案

dsp遇到问题及处理方案

Dsp遇到的问题集锦1:仿真器驱动没有装好,可以查看“Studio_v3.3/cc/bin”路径下的“xdsfast3.dll”文件,如果这个文件是160K大小那么驱动就是没有装好的。

如果出现这样的问题,即使重装驱动往往也不能成功。

需要删除该“xdsfast3.dll”文件,然后断开PC和仿真器,重新装仿真器驱动。

安装后查看“xdsfast3.dll”文件大小为352K即表示驱动安装成功。

2:Error:Error 0xA0002020/-1044Error during: Execution, Control,Device driver: Cannot acquire emulator processPossible conflict for device driver usage3:Error connecting to the target:Error 0x80000244/-2131Fatal Error during: Register, Initialization, OCS,Cannot access register at 0x00000000Sequence ID: 0Error Code: -2131Error Class: 0x800002444:Error:Error 0xA0003020/-1137Error during: Execution, Target, Control,It appears that the target is being held in reset. This may be due to Wait-In-Reset (WIR) configuration set by the EMU0=0 and EMU1=1 pin settings. If this is the case, DISCONNECTall CONNECTED devices including icepick and then select RETRY to clear the WIR configuration.If this is a multi-core system, the master CPU may not be releasing the DSP/MCU from reset. Please check your configuration in CC_setup and/or your GEL file to ensure that nothing is blocking the DSP/MCU from being released from resetSequence ID: 16Error Code: -1137Error Class: 0xA0003020。

DSP(知识点+思考题)

DSP(知识点+思考题)

DSP(知识点+思考题)DSP复习要点第⼀章绪论1、数的定标:Qn表⽰。

例如:16进制数2000H=8192,⽤Q0表⽰16进制数2000H=0.25,⽤Q15表⽰2、?C54x⼩数的表⽰⽅法:采⽤2的补码⼩数;.word 32768 *707/10003、定点算术运算:乘法:解决冗余符号位的办法是在程序中设定状态寄存器STl中的FRCT位为1,让相乘的结果⾃动左移1位。

第⼆章CPU结构和存储器设置⼀、思考题:1、C54x DSP的总线结构有哪些特点?答:TMS320C54x的结构是围绕8组16bit总线建⽴的。

(1)、⼀组程序总线(PB):传送从程序存储器的指令代码和⽴即数。

(2)、三组数据总线(CB,DB和EB):连接各种元器件,(3)、四组地址总线(PAB,CAB,DAB和EAB)传送执⾏指令所需要的地址。

2、C54x DSP的CPU包括哪些单元?答:'C54X 芯⽚的CPU包括:(1)、40bit的算术逻辑单元(2)、累加器A和B(3)、桶形移位寄存器(4)、乘法器/加法器单元(5)、⽐较选择和存储单元(6)、指数编码器(7)、CPU状态和控制寄存器(8)、寻址单元。

1)、累加器A和B分为三部分:保护位、⾼位字、地位字。

保护位保存多余⾼位,防⽌溢出。

2)、桶形移位寄存器:将输⼊数据进⾏0~31bits的左移(正值)和0~15bits的右移(负值)3)、乘法器/加法器单元:能够在⼀个周期内完成⼀次17*17bit的乘法和⼀次40位的加法4)、⽐较选择和存储单元:⽤维⽐特算法设计的进⾏加法/⽐较/选择运算。

5)、CPU状态和控制寄存器:状态寄存器ST0和ST1,由置位指令SSBX和复位指令RSBX控制、处理器模式状态寄存器PMST2-3、简述’C54x DSP的ST1,ST0,PMST的主要功能。

答:’C54x DSP的ST1,ST0,PMST的主要功能是⽤于设置和查看CPU的⼯作状态。

DSP技术复习资料-完整版

DSP技术复习资料-完整版

DSP(数字信号处理)技术复习资料1.简述数字信号处理器的主要特点(P4)。

数字信号处理(Digital Signal Processing)简称DSP。

主要特点:(1)采用哈佛结构;(2)采用多总线结构;(3)采用流水线结构;(4)配有专用的硬件乘法器-累加器;(5)具有特殊的寻址方式和指令;(6)支持并行指令操作;(7)硬件配置强,具有较强的接口功能;(8)支持多处理器结构。

2. 请给出数字信号处理器的运算速度指标(P6)。

(1)MAC时间:一次乘法和一次加法的时间;(2)FFT执行时间:运行一个N点FFT程序所需的时间;(3)MIPS:每秒执行百万条指令;(4)MOPS:每秒执行百万次操作;(5)MFLOPS:每秒执行百万次浮点操作;(6)BOPS:每秒执行十亿次操作。

(7)指令周期:执行一条指令所需的最短时间,数值等于主频的倒数;常用ns(纳秒)。

3.简述C55x的存储器配置情况(P11~12)。

(1)C55x采用统一的存储空间和I/O空间;(2)C55x的片内存储空间共有352KB(146K字),外部存储空间共有16MB(8M字);(3)存储区支持的存储器类型有异步SRAM,异步EPROM、同步DRAM和同步突发SRAM;(4)C55x的I/O空间与程序/地址空间分开;(5)I/O空间的字地址为16位,能访问64K字地址;(6)当CPU读/写I/O空间时,在16位地址前补0来扩展成24位地址。

4.TMS320C55x的寻址空间是多少当CPU访问程序空间和数据空间时,使用的地址是多少位(P51、P53~54)。

(1)C55x的寻址空间为16MB(24位地址,2^24 = B = 16MB)(2)CPU访问程序空间时,使用24位的地址;(3)访问数据空间时,使用23位地址,使用时23位地址左移一位将地址总线上的最低有效位(LSB)置0。

5.VC5509A的PGE LQFP封装芯片共有多少个引脚其中GPIO引脚有多少个并行地址总线引脚有多少个并行双向数据总线引脚有多少个(P13~15)(1)引脚:144个;(2)GPIO引脚:7个;(注:GPIO[7:6,4:0])(3)并行总线引脚:14个;(注:A[13:0])(4)并行双向数据引脚:16个;(注:D[15:0])6.C55x的指令分为两个阶段,第一阶段为取指阶段,第二阶段为执行阶段;7.C55x的CPU包含4个40位的累加器,辅助寄存器ARn有16位,XARn有 23 位;(P29、P31)8.XF位是寄存器ST1_55中的第13位,它是一通用的输出位,能用软件处理且可输出至DSP引脚。

DSP复习文档终极版

DSP复习文档终极版

DSP技术知识要点(计科)CHAP1冯、诺依曼结构和哈佛结构的特点冯诺依曼:该结构采用单存储空间,即程序指令和数据公用一个存储空间,使单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行的。

当进行高速运算时,不能同时进行取指令和取操作数,起工作速度慢。

哈佛结构:该结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序和数据进行独立传输,使取指令操作,指令执行操作,数据吞吐并行完成,大大提高了数据处理能力和指令的执行速度。

DSP 芯片的特点(为何适合数据密集型应用)①采用哈佛结构②采用多总线结构③采用流水线技术④配有专用的硬件乘法-累加器⑤具有特殊的DSP 指令⑥快速的指令周期⑦硬件配置强⑧支持多处理器结构⑨省电管理和低消耗DSP 芯片的分类定点DSP芯片,精度和范围是不能同时兼顾的。

定点DSP是主流产品,成本低,对存储器要求低、耗电少,开发相对容易,但设计中必须考虑溢出问题。

用在精度要求不太高的场合。

浮点DSP 芯片,精度高、动态范围大,产品相对较少,复杂成本高。

但不必考虑溢出的问题。

用在精度要求较高的场合。

定点DSP的表示(Qm.n,精度和范围与m、n的关系)及其格式转换1 整数表示法2 小数表示法3 数的定标;n 越大,数值范围越小,但精度越高;相反,n 越小,数值范围越大,但精度就越低。

不同Qm.n 形式的数进行加减运算时,通常将动态范围小的数据格式转换成动态范围大的数据格式。

即n 大的数据格式向n小的数据格式转换。

方法:将n 大的数向右移相差的位数,这时原数低位被移出,高位则进行符号扩展。

TI 公司的三大主力系列DSP 芯片C2x、C24x 称为C2000 系列,定位于控制类和运算量较小的运用,主要用于代替MCU ,应用于各种工业控制领域,尤其是电机控制领域。

C54x、C55x 称为C5000 系列,低功耗高性能,定位于中等计算量的应用。

做DSP最应该懂的57个问题

做DSP最应该懂的57个问题

几个DSP高手的经验介绍,编写基于DSP程序的注意事项[zt]一. 我是已经从事DSP开发有几年了,看到许多朋友对DSP的开发非常感兴取,我结合这几年对DSP 的开发写一写自己的感受,一家之言,欢迎指教。

我上研究生的第一天起根据老板的安排就开始接触DSP,那时DSP开发在国内高校刚刚开始,一台DSP开发器接近一万还是ISA总线的,我从206开始240、2407A都作过产品,对5402、2812、5471在产品方案规划制定和论证时也研究过。

由于方向所限对6X、8X系列没有接触。

我发现在国内无论在公司或高校许多地方为了加快开发周期往往把一个产品开发分为硬件和软件两个相对独立部分,由不同的人完成。

这在具有一定技术和管理基础的公司,由总设计师统一规划协调,分任务并行完成的情况下是可行的,也是符合现代产品开发规律的。

但是在高校人员的流动很大,研究生的有效科研时间很短、基础差(许多研究生起步时对电熔、电阻、三极管的分类和选型都很困难,我也是这样过来的)更不用说系统规划设计了,况且许多老板自己也不太懂,师兄有自己的任务,他们搞明白时也毕业了。

在许多高校做DSP就是找一个算法加到自己的主程序里,在板子上跑一下,基本达到效果就可以了,至于可靠性是次要的,产业化无从谈起,这已经算不错的了。

其实我觉得一个系统的完成,系统的规划是最重要的,在规划时对硬件设计的知识和认识是决定性的,它可以让你知道什么是可行的,什么是不可行的,当你同时具有软件设计能力时,就可以合理的分配系统功能,完成使用VHDL进行系统行为描述-—系统功能划分——系统子结构设计这样的自顶向下的设计规划流程,成为系统设计专家、项目经理,否则只是硬件工程师、软件工程师。

无论作51、196、还是DSP 都是这样。

下面分别谈谈我对硬件和软件设计的感受硬件设计是系统设计的关键,国内和国外产品的差距往往是硬件设计水平高低决定的,任何软件设计思想没有可靠的物理载体都是空中楼阁,纸上谈兵。

DSP常见编译错误

DSP常见编译错误

1. DSP编程技巧到底有什么好资料?话说专门深入讲解这个的资料并不是太多,因为大部分DSP书籍都是讲解算法或者寄存器是怎么使用的,那尽量罗列一下(如有遗漏请在评论区补充),有:(1)《DSP C2000程序员高手进阶》这本书是当年笔者学习DSP的时候看了好几遍的,讲的非常深入、透彻,可惜早就卖光了并且没有再版。

需要的网友可以考虑去图书馆看看,图书馆里最不缺少的就是老版本的书籍了。

(2)EEPW牛人业话我们EEPW首页的牛人业话里,已经有大量这方面的总结了,链接太多就不一一列举了,请到/news/articlelist/type/39中阅读。

(3)官方资料最权威的当然还是官方资料,特别是《TMS320C28x Optimizing C/C++ Compiler User’s Guide》和《TMS320C28x Assembly Language Tools User’s Guide》。

不足之处就在于,它们都像教科书,严谨有余,活泼不足,特别是初入门的人看起来会比较累。

(4)参加一些培训好的培训一般都是要付费的,这个要根据自己的实际情况进行取舍了。

2. 答疑解惑哪家强?经验的积累,除了自己努力的自学之外,有时候一些难关还是得有别人的帮助才行,可能你花3天搞不定的问题,他一看就想起来是什么原因了。

如果是企业客户,那直接联系官方技术支持,很容易就搞定了。

或者也可以去官方论坛提问,然后等待解答。

对于广大网友来说,直接获得技术支持可能有一定的难度。

我们EEPW的论坛的人气充足,对问题的响应速度也是迅雷不及掩耳的,所以有关DSP的问题尽可以到/forum/29/1下提问。

前面这两个无关具体技术,但是能起到―源头‖的作用。

接下来就是具体的技术问题了,有几十个,我们慢慢来看吧。

3. 作为入门者,创建一个最基本的工程需要做哪些事情?最简单的入门方法是从现有的例子上入手,比如购买开发板的话,一般都会附送十几到几十个上手用的例子工程,把它们研究一遍,基本上入门这关就过了。

dsp编译错误与解决方法(精)

dsp编译错误与解决方法(精)
在其他文件中只要包含了global.h就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时,就会将工程中所有的符号整合在一起,由于文件中有重名变量,于是就出现了重复定义的错误。
下面是解决方法
在global.c或.cpp中声明变量然后建一个头文件global.h在所有的变量声明前加上extern ...如extern HANDLE ghEvent;注意这儿不要有变量的初始化语句。然后在其他需要使用全局变量的cpp文件中包含.h文件而不要包含.cpp文件。编译器会为global.cpp生成目标文件然后连接时在使用全局变量的文件中就会连接到此文件。在其他文件中只要包含了global.h就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时就会将工程中所有的符号整合在一起,由于文件中有重名变量,于是就出现了重复定义的错误。
can't open file '/.obj' for input是什么原因引起的?
cmd文件中有不合法的符号比如“//”等
1 fatal error: #error NO CHIP DEFINED详细的出错信息:
"...." -g -q -fr"e:/project_documents/dsp_project/dsp_mp3/Debug" -d"_DEBUG" -@"Debug.lkf" ...c"
3把调试程序的时候的一些错误提示和解决方法记录下来,有备无患
1.symbol referencing errors
undefined first refere----- ----------------
_dot_asm E:\CCStudio_v3.1\MyProjects\dot_mpy_6211\Debug
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DSP-算法- 精华资料 (全是DSP工程师遇到的问题)[转帖].txt心脏是一座有两间卧室的房子,一间住着痛苦,一间住着快乐。

人不能笑得太响,否则会吵醒隔壁的痛苦。

DSP-算法- 精华资料 (全是DSP工程师遇到的问题)[转帖]如何选择外部时钟?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的指令周期较快,访问慢速存储器或外设时需加入等待。

等待分硬件等待和软件等待,每一个系列的等待不完全相同。

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的基本要求1)DSP电源和地连接正确。

2)DSP时钟正确。

3)DSP的主要控制信号,如RS和HOLD信号接高电平。

4)C2000的watchdog关掉。

5)不可屏蔽中断NMI上拉高电平。

CCS或Emurst运行时提示“Can't Initialize Target DSP”1)仿真器连接是否正常? 2)仿真器的I/O设置是否正确? 3)XDSPP仿真器的电源是否正确? 4)目标系统是否正确? 5)仿真器是否正常?6)DSP工作的基本条件是否具备。

建议使用目标板测试。

为什么CCS需要安装Driver?CCS是开放的软件平台,它可以支持不同的硬件接口,因此不同的硬件接口必须通过标准的Driver同CCS连接。

Driver安装的常见问题?请认真阅读“安装手册”和Driver盘中的Readme。

1)对于SEED-XDS,安装Readme中的步骤,将I/O口设为240/280/320/340。

2)对于SEED-XDSPP,安装Readme中的步骤,将I/O 口设为378或278。

3)对于SEED-XDSUSB,必须连接目标板,安装Readme中的步骤,将I/O 口设为A,USB连接后,主机将自动激活相应的Driver。

4)对于SEED-XDSPCI,安装Readme 中的步骤,将I/O口设为240,PCI接口板插入主机后,主机将自动激活相应的Driver。

5)对于Simulator,需要选择不同的CFG文件,以模拟不同的DSP。

6)对于C5402 DSK,将I/O 口设为请认真阅读“安装手册”和Driver盘中的Readme。

1)对于SEED-XDS,安装Readme 中的步骤,将I/O口设为240/280/320/340。

2)对于SEED-XDSPP,安装Readme中的步骤,将I/O口设为378或278。

注意主机BIOS中并口的型式必须同xds510pp.ini中一致。

3)对于SEED-XDSUSB,必须连接目标板,安装Readme中的步骤,将I/O口设为240/280/320/340,USB连接后,主机将自动激活相应的Driver。

4)对于SEED-XDSPCI,安装Readme中的步骤,将I/O口设为240/280/320/340,PCI接口板插入主机后,主机将自动激活相应的Driver。

5)对于Simulator,需要选择不同的CFG文件,以模拟不同的DSP。

6)对于C5402 DSK,将I/O 口设为378或278。

7)对于C6211/6711 DSK,将I/O口设为378或278。

8)对于C6201/C6701 EVM,将I/O口设为0。

Link的cmd文件的作用是什么?Link的cmd文件用于DSP代码的定位。

由于DSP的编译器的编译结果是未定位的,DSP没有操作系统来定位执行代码,每个客户设计的DSP系统的配置也不尽相同,因此需要用户自己定义代码的安装位置。

以C5000为例,基本格式为:-o sample.out-m sample.map-stack 100sample.obj meminit.obj-l rts.libMEMORY {PAGE 0: VECT: origin = 0xff80, length 0x80PAGE 0: PROG: origin = 0x2000, length 0x400PAGE 1: DATA: origin = 0x800, length 0x400}SECTIONS {.vectors : {} >PROG PAGE 0.text : {} >PROG PAGE 0.data : {} >PROG PAGE 0.cinit : {} >PROG PAGE 0.bss : {} >DATA PAGE 1}如何将OUT文件转换为16进制的文件格式?DSP的开发软件集成了一个程序,可以从执行文件OUT转换到编程器可以接受的格式,使得编程器可以用次文件烧写EPROM或Flash。

对于C2000的程序为DSPHEX;对于C3x程序为HEX30;对于C54x程序为HEX500;对于C55x程序为HEX55;对于C6x程序为Hex6x。

以C32为例,基本格式为:sample.out-x-memwidth 8-bootorg 900000h-iostrb 0h-strb0 03f0000h-strb1 01f0000h-o sample.hexROMS {EPROM: org = 0x900000,len=0x02000,romwidth=8}SECTIONS {.text: paddr=boot.data: paddr=boot}DSP仿真器为什么必须连接目标系统(Target)?DSP的仿真器同单片机的不同,仿真器中没有DSP,提供IEEE标准的JTAG口对DSP进行仿真调试,所以仿真器必须有仿真对象,及目标系统。

目标系统就是你的产品,上面必须有DSP。

仿真器提供JTAG同目标系统的DSP相接,通过DSP实现对整个目标系统的调试。

仿真工作正常对于DSP的基本要求1) DSP电源和地连接正确。

2)DSP时钟正确。

3)DSP的主要控制信号,如RS和HOLD信号接高电平。

4)C2000的watchdog关掉。

5)不可屏蔽中断NMI上拉高电平。

CCS或Emurst运行时提示“Can't Initialize Target DSP”1) 仿真器连接是否正常? 2)仿真器的I/O设置是否正确? 3)XDSPP仿真器的电源是否正确? 4)目标系统是否正确? 5)仿真器是否正常?6)DSP工作的基本条件是否具备。

建议使用目标板测试。

为什么CCS需要安装Driver?CCS是开放的软件平台,它可以支持不同的硬件接口,因此不同的硬件接口必须通过标准的Driver同CCS连接。

Link的cmd文件的作用是什么?Link的cmd文件用于DSP代码的定位。

由于DSP的编译器的编译结果是未定位的,DSP没有操作系统来定位执行代码,每个客户设计的DSP系统的配置也不尽相同,因此需要用户自己定义代码的安装位置。

以C5000为例,基本格式为:-o sample.out-m sample.map-stack 100sample.obj meminit.obj-l rts.libMEMORY {PAGE 0: VECT: origin = 0xff80, length 0x80PAGE 0: PROG: origin = 0x2000, length 0x400PAGE 1: DATA: origin = 0x800, length 0x400}SECTIONS {.vectors : {} >PROG PAGE 0.text : {} >PROG PAGE 0.data : {} >PROG PAGE 0.cinit : {} >PROG PAGE 0.bss : {} >DATA PAGE 1}如何将OUT文件转换为16进制的文件格式?DSP的开发软件集成了一个程序,可以从执行文件OUT转换到编程器可以接受的格式,使得编程器可以用次文件烧写EPROM或Flash。

相关文档
最新文档