DSP学习笔记

合集下载

DSP汇编指令学习笔记

DSP汇编指令学习笔记

Knowledge问题谁在DSP的汇编语言中加入了NOP指令?NOP指令加入的条件是什么?About DSP1.DSP是实时数字信号处理的核心和标志。

2.DSP分为专用和通用两种类型。

专用DSP一般采用定点数据结构(一般不支持小数),数据结构简单,处理速度快;通用DSP灵活性好,但是处理速度有所降低。

3.DSP采用取指、译码、执行三个阶段的流水线(Pipeline)技术,缩短了执行时间,提高了运行速率。

DSP具有8个Functional unit,如果并行处理的话,以600MHz的时钟计算,如果执行的指令是single cycle指令,则可以4800MIPS(指令每秒)。

4.DSP的8个functional Unit,具有独特的功能,对滤波、矩阵运算、FFT(傅里叶变换)具有哈弗结构把指令空间与数据空间隔离的存储方式。

这样实现是为了实现指令的连续读取,而实现pipeline流水线结构。

传统哈弗结构:两个独立的存储空间,还使用独立总线。

让取指与执行存储独立,加快执行速度。

改进型哈弗结构:指令与数据的存储空间还是独立的。

但是使用公共的总线(地址总线与数据总线)。

这样实现的原因是因为出现了CACHE,数据的存储动作大部分被内部的CACHE 总线承接了,所以总线冲突的情况会大大减少。

同时让总线的结构与控制变得简单,CACHE 存储的速度也明显快于外设存储器。

冯诺依曼结构:是指令空间与数据空间共享的存放方式。

它不能实现pipeline的执行过程。

Pipeline(流水线)技术是把指令的取指-译码和指令的执行独立开来的技术。

虽然每条指令的过程还是要经过取指-译码-执行三个阶段最少3个CPU Cycle。

但是多个指令同时并行先后进行,保证总体的指令吞吐速率理想情况下可以保证在每个指令只要一个CPU CYCLE。

Pipeline技术必须要有哈弗结构支持,即必须把指令空间与数据空间隔离存放。

流水线阻断流水线中阻断现象也十分普遍,下面就各种阻断情况下的流水线性能进行详细分析。

dsp知识点总结

dsp知识点总结

dsp知识点总结一、DSP基础知识1. 信号的概念信号是指用来传输信息的载体,它可以是声音、图像、视频、数据等各种形式。

信号可以分为模拟信号和数字信号两种形式。

在DSP中,我们主要研究数字信号的处理方法。

2. 采样和量化采样是指将连续的模拟信号转换为离散的数字信号的过程。

量化是指将信号的幅度离散化为一系列离散的取值。

采样和量化是数字信号处理的基础,它们决定了数字信号的质量和准确度。

3. 傅里叶变换傅里叶变换是一种将时域信号转换为频域信号的方法,它可以将信号的频率分量分解出来,从而可以对信号进行频域分析和处理。

傅里叶变换在DSP中有着广泛的应用,比如滤波器设计、频谱分析等。

4. 信号处理系统信号处理系统是指用来处理信号的系统,它包括信号采集、滤波、变换、编解码、存储等各种功能。

DSP技术主要用于设计和实现各种类型的信号处理系统。

二、数字滤波技术1. FIR滤波器FIR滤波器是一种具有有限长冲激响应的滤波器,它的特点是结构简单、稳定性好、易于设计。

FIR滤波器在数字信号处理中有着广泛的应用,比如音频处理、图像处理等。

2. IIR滤波器IIR滤波器是一种具有无限长冲激响应的滤波器,它的特点是频率选择性好、相位延迟小。

IIR滤波器在数字信号处理中也有着重要的应用,比如通信系统、控制系统等。

3. 数字滤波器设计数字滤波器的设计是数字信号处理的重要内容之一,它包括频域设计、时域设计、优化设计等各种方法。

数字滤波器设计的目标是满足给定的频率响应要求,并且具有良好的稳定性和性能。

4. 自适应滤波自适应滤波是指根据输入信号的特性自动调整滤波器参数的一种方法,它可以有效地抑制噪声、增强信号等。

自适应滤波在通信系统、雷达系统等领域有着重要的应用。

三、数字信号处理技术1. 数字信号处理器数字信号处理器(DSP)是一种专门用于数字信号处理的特定硬件,它具有高速运算、低功耗、灵活性好等特点。

DSP广泛应用于通信、音频、图像等领域,是数字信号处理技术的核心。

DSP入门必须掌握知识点

DSP入门必须掌握知识点

1.DSP选型:主要考虑处理速度、功耗、程序存储器和数据存储器的容量、片内的资源,如定时器的数量、I/O 口数量、中断数量、DMA通道数等。

DSP的主要供应商有TI,ADI,Motorola,Lucent和Zilog等,其中TI占有最大的市场份额。

选择DSP可以根据以下几方面决定:1)速度:DSP速度一般用MIPS或FLOPS表示,即百万次/秒钟。

根据您对处理速度的要求选择适合的器件。

一般选择处理速度不要过高,速度高的DSP,系统实现也较困难。

2)精度:DSP芯片分为定点、浮点处理器,对于运算精度要求很高的处理,可选择浮点处理器。

定点处理器也可完成浮点运算,但精度和速度会有影响。

3)寻址空间:不同系列DSP程序、数据、I/O 空间大小不一,与普通MCU不同,DSP在一个指令周期内能完成多个操作,所以DSP的指令效率很高,程序空间一般不会有问题,关键是数据空间是否满足。

数据空间的大小可以通过DMA的帮助,借助程序空间扩大。

4)成本:一般定点DSP的成本会比浮点DSP的要低,速度也较快。

要获得低成本的DSP系统,尽量用定点算法,用定点DSP。

5)实现方便:浮点DSP的结构实现DSP系统较容易,不用考虑寻址空间的问题,指令对C语言支持的效率也较高。

6)内部部件:根据应用要求,选择具有特殊部件的DSP。

如:C2000适合于电机控制;OMAP适合于多媒体等。

1)C5000系列(定点、低功耗):C54X,C54XX,C55X相比其它系列的主要特点是低功耗,所以最适合个人与便携式上网以及无线通信应用,如手机、PDA、GPS等应用。

处理速度在80MIPS--400MIPS之间。

C54XX和C55XX一般只具有McBSP同步串口、HPI并行接口、定时器、DMA等外设。

值得注意的是C55XX提供了EMIF外部存储器扩展接口,可以直接使用SDRAM,而C54XX则不能直接使用。

两个系列的数字IO 都只有两条。

2)C2000系列(定点、控制器):C20X,F20X,F24X,F24XX ,C28x该系芯片具有大量外设资源,如:A/D、定时器、各种串口(同步和异步),WATCHDOG、CAN总线/PWM 发生器、数字IO 脚等。

Dsp学习笔记

Dsp学习笔记

1GPIO作为通用I/O口使用a)EALLOW;//防止私自写或覆盖寄存器的内容,加了这句,接下来可以操作寄存器了b)GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0; // GPIO0复用为普通I/O功能c)GpioCtrlRegs.GPADIR.bit.GPIO0 = 1; // 1,设置为输出;0设置为输入d)EDIS;//加了这句,接下来不可以操作寄存器注:EALLOW,EDIS总是成对出现2中断过程(代码以配置SCIB模块的接收中断为例,LSPCLK是37.5MHz)中断共分三级,1,外设级;2,PIE级;3,CPU级;外设级的中断标志必须手动清零;PIE级和CPU级的中断标志位由硬件自动清零。

中断响应例程:第一步,配置中断源,即允许产生什么类型点中断。

例如,定时器中断,串口中断,外部中断等。

ScibRegs.SCICTL2.bit.RXBKINTENA =1;允许接收中断第二步,配置PIE(外部中断扩展)a) InitPieCtrl();//初始化Pie控制b) InitPieVectTable();//初始化Pie向量表控制c) EALLOW;d) PieVectTable.SCIRXINTB=&scibreceive;//指定中断服务程序地址e) EDIS;f) PieCtrlRegs.PIECTRL.bit.ENPIE=1;//使能从PIECTRL中读取中断向量g) PieCtrlRegs.PIEIER9.bit.INTx3=1;//使能SCIB的接收中断h) IER |= M_INT9;//允许外部中断i) EINT;j) ERTM;第三步,中断响应在中断服务程序里,必须用PieCtrlRegs.PIEACK.all = PIEACK_GROUP9;//清楚中断已响应标识,再写自己等程序代码3串口配置InitScibGpio();scib_echoback_init();4AD转换InitAdc();//允许ADC时钟,带隙和参考电路上电,核中模拟电路上电AdcRegs.ADCTRL2.all = 0x2000;//ADC模块开始转换程序在FLASH运行时,需要加如下两句代码:(不知道具体原因)MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);InitFlash();。

DSP课堂笔记总结

DSP课堂笔记总结

1.数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。

输入信号可以是语音信号、传真信号,也可以是视频信号,还可以是传感器(如温度传感器)的输出信号。

输入信号经过带限滤波后,通过A/D转换器将模拟信号转换成数字信号。

根据采样定理,采样频率至少是输入带限信号最高频率的2倍,在实际应用中,一般为4倍以上。

数字信号处理一般是用DSP芯片和在其上运行的实时处理软件对输入数字信号按照一定的算法进行处理,然后将处理后的信号输出给D/A转换器,经D/A转换、内插和平滑滤波后得到连续的模拟信号。

3.数字信号处理的实现方法一般有以下几种:(1) 在通用型计算机上用软件实现。

一般采用C语言、MA TLAB语言等编程,主要用于DSP算法的模拟与仿真,验证算法的正确性和性能。

优点是灵活方便,缺点是速度较慢。

(2) 在通用型计算机系统中加上专用的加速处理器实现。

专用性强,应用受到很大的限制,也不便于系统的独立运行。

(3) 在通用型单片机(如MCS-51、MCS-96系列等)上实现。

只适用于简单的DSP算法,可用于实现一些不太复杂的数字信号处理任务,如数字控制。

(4) 用通用型可编程DSP芯片实现。

与单片机相比,DSP芯片具有更加适合于数字信号处理的软件和硬件资源,可用于复杂的数字信号处理算法。

特点是灵活、速度快,可实时处理。

(5) 用专用型DSP芯片实现。

在一些特殊的场合,要求信号处理速度极高,用通用型DSP芯片很难实现,例如专用于FFT、数字滤波、卷积、相关等算法的DSP芯片,这种芯片将相应的信号处理算法在芯片内部用硬件实现,无须进行编程。

处理速度极高,但专用性强,应用受到限制。

在上述几种实现方法中,(1)~(3)和(5)都有使用的限制,只有(4)才使数字信号处理的应用打开了新的局面。

4.DSP系统的特点基于通用DSP芯片的数字信号处理系统与模拟信号处理系统相比,具有以下优点:(1) 精度高,抗干扰能力强,稳定性好。

dsp基础学习总结笔记

dsp基础学习总结笔记

1、cj431电压基准芯片,2.5v2、电平标准3、驱动器74HC245(为增强PWM的驱动负载能力)4、增加输入端的抗干扰能力:在芯片的输入端加上拉电阻加电源或者下拉电阻接地,没有用到的采样端口尽量不要悬空。

5、D/A电路方案通用扩展语言GEL和c相似,但是有所不同。

GEL语言是C语言的一个子集。

与c语言不同的是gel不需要指定函数返回值的类型。

Gel中的while语句和c中的while语句相同,gel不支持标准c的break和continue语句6、一个完整的dsp工程包括头文件(.h),库文件(.lib),源文件(.c),以及配置文件.Cmd使用关键字MENUITEM可以在gel菜单下选择用户自定义的菜单项,然后用hotmenu、dialog或slider等关键字,在这个新的下拉菜单中添加新的菜单项。

7、关于添加文件遇到的问题8、变量查找:edit→find:Ctrl+f9、调试时,添加断点的快捷方法如下点击图上的小手即可10、单步调试第一个的意思是单击一步走一步,第二个的意思是指在单步运行时遇到子函数不进入子函数内部进行而是把它当成一步来执行,第三个的意思是当执行到子函数内部时使用这个按钮就可以执行完剩下的部分返回上一层函数。

如果想在一个窗口内同时看到c和汇编,则有操作View→mixed source/asm 11、观察变量右击变量→add to watch window 可以得到变量的值、类型、地址等。

12、位域定义、结构体以及共同体的知识结构体先定义再声明Union SCIFFCT_REG {Uint16 all;Struct SCIFFCT_BITS bit;};//---------------------------------------------------------------------------// SCI Register File://Struct SCI_REGS {Union SCICCR_REG SCICCR; // Communications control register Union SCICTL1_REG SCICTL1; // Control register 1Uint16 SCIHBAUD; // Baud rate (high) registerUint16 SCILBAUD; // Baud rate (low) registerUnion SCICTL2_REG SCICTL2; // Control register 2Union SCIRXST_REG SCIRXST; // Receive status registerUint16 SCIRXEMU; // Receive emulation buffer registerUnion SCIRXBUF_REG SCIRXBUF; // Receive data bufferUint16 rsvd1; // reservedUint16 SCITXBUF; // Transmit data bufferUnion SCIFFTX_REG SCIFFTX; // FIFO transmit registerUnion SCIFFRX_REG SCIFFRX; // FIFO receive registerUnion SCIFFCT_REG SCIFFCT; // FIFO control registerUint16 rsvd2; // reservedUint16 rsvd3; // reservedUnion SCIPRI_REG SCIPRI; // FIFO Priority control};//---------------------------------------------------------------------------// SCI External References & Function Declarations://Extern volatile struct SCI_REGS SciaRegs;Extern volatile struct SCI_REGS ScibRegs;由于scihbaud和scilbaud定义时为unit16型的,所以不能用.all或者.bit 的方式来访问,只能直接给寄存器整体进行赋值。

dsp学习笔记(下)

dsp学习笔记(下)

GPIO寄存器一共分为两大类:一类是控制寄存器:主要由功能控制寄存器GPxMUX,方向控制寄存器GPxDIR,输入限定控制寄存器GPxQUAL组成。

另一类是数据寄存器:主要由数据寄存器GPxDAT,置位寄存器GPxSET,清除寄存器GPxCLEAR和取反寄存器GPxTOGGLE 组成。

假设已经设置为数字I/O口,那么输入输出又是怎么定义的呢?如下所示:输入限定控制寄存器、可以通过这个寄存器对输入信号进行量化限制、改善输入信号从而去除不希望的噪声污染。

连续采样到多个相同的电平时才认为是该电平、滤除了干扰信号。

LED闪烁实验系统初始化函数、GPIO初始化函数、主函数、延时子函数在寄存器中结构体的运用Struct GPADIR_BITS { // bits descriptionUint16 GPIOA0:1; // 0Uint16 GPIOA1:1; // 1Uint16 GPIOA2:1; // 2Uint16 GPIOA3:1; // 3Uint16 GPIOA4:1; // 4Uint16 GPIOA5:1; // 5Uint16 GPIOA6:1; // 6Uint16 GPIOA7:1; // 7Uint16 GPIOA8:1; // 8Uint16 GPIOA9:1; // 9Uint16 GPIOA10:1; // 10Uint16 GPIOA11:1; // 11Uint16 GPIOA12:1; // 12Uint16 GPIOA13:1; // 13Uint16 GPIOA14:1; // 14Uint16 GPIOA15:1; // 15};Union GPADIR_REG {Uint16 all;Struct GPADIR_BITS bit;};第10章 CPU定时器32位定时器周期寄存器、32位计数器寄存器、16位定时器分频器寄存器(决定了每一步的时间)、16位的预定标计数器寄存器只有定时器0是能用的第11章中断系统可屏蔽中断、不可屏蔽中断中断使能寄存器IER某一位为1则屏蔽该对应中断高两位保留、低14位对应着相应的14个中断中断标志寄存器IFR:说明CPU中断提出了相应中断请求若相对应位为0、则说明没有未处理的对应中断若相对应位为1、则说明至少有一个对应中断没有处理INTM 总开关PIE中断控制器组的概念:被分布在不同的组里μC/OS-II由Micrium公司提供,是一个可移植、可固化的、可裁剪的、占先式多任务实时内核,它适用于多种微处理器,微控制器和数字处理芯片(已经移植到超过100种以上的微处理器应用中)。

《DSP控制器原理与技术应用》读书笔记模板

《DSP控制器原理与技术应用》读书笔记模板

6.2 SPI同步通信 模块
6.1 SCI异步通信 模块
6.3 eCAN通信模块
6.1.1 SCI工作原理 6.1.2多处理器通信方式 6.1.3 SCI模块寄存器 6.1.4 SCI模块的应用
6.2.1 SPI的特点 6.2.2 SPI模块的工作模式 6.2.3 SPI模块寄存器 6.2.4 SPI模块的应用
2.5.1 CCS概述 2.5.2新建CCS工程 2.5.3导入已有的CCS工程 2.5.4编写CCS工程
3.2中央处理单元
3.1系统与总线结 构
3.3存储器与存储 映射
3.4 DMA控制 器
3.5系统时钟
3.1.1 CPU 3.1.2总线
3.2.1算数逻辑运算单元 3.2.2乘法器 3.2.3累加器 3.2.4移位器 3.2.5 CPU寄存器
DSP控制器原理与技术应用
读书笔记模板
01 思维导图
03 目录分析 05 精彩摘录
目录
02 内容摘要 04 读书笔记 06 作者介绍
思维导图
本书关键字分析思维导图
设计
概述
技术
开发
数据
结构
文件

原理
模块
第章
应用
寄存器
单元
工作
内容摘要
本书主要介绍TMS320F2833x系列DSP控制器的结构原理,软件、硬件设计开发和应用。全书共6章,简要介绍 了DSP的发展应用和软件开发设计的基础,概述了TMS320F2833x硬件结构和片上初始化单元,重点介绍了片上基 本外设ADC模块、ePWM模块、eCAP模块、eQEP模块和SCI模块、SPI模块及eCAN模块通信外设的应用开发。
01
2.1 C语言 编程基础

DSP编程学习笔记

DSP编程学习笔记

一、三相电压源变换器的结构1.1 自励式三相电压源变换器的原理图图1 自励式三相电压源变换器的原理结构图1.1.1 原理结构图(如图1所示)1.1.2 各元件的作用与选择:交流侧连接电感L :滤波,减小高次谐波电压造成的脉动,同时起到将变换器和交流电网隔离的作用。

直流侧的电容C :整流时,保持输出直流电压稳定,并滤出输出电压的低次谐波成分;逆变时,为逆变的正常工作提供电压支撑,相当于电压源,保证电压基本无脉动;当交流侧为阻感负载时,需要提供无功功率,直流电容起到缓冲无功能量的作用,反并联的二极管,起到将交流侧到直流侧反馈的无功能量提供通道的作用。

往往该二极管选择快速关断二极管。

1.1.3 何谓自励与他励?自励时直流电压如何建立或控制的?自励:不借助于外部其他辅助电路的激励,由该电路自身的特点,完成对直流侧电压的建立。

自励时直流侧电压建立过程如下:在第一阶段,关断所有的IGBT 器件,利用反向并联的二极管对直流电容进行充电, 这时相当于三相全桥整流。

一般而言, 经过第一阶段的充电,直流侧电压可达520V 左右。

待直流电压稳定后,进行第二阶段的充电,即斩波升压。

任选一支IGBT ,在适当时刻进行开关操作。

如图1所示,以系统线电压AB U 作为同步参考信号,当AB U 为负时,开通VT1,这时有电流流经VT1和VD3经过一段时间后,La 和Lb 中积聚了一定的能量,关断VT1,该回路电流突变,于是电感La 和Lb 中的磁场能转化为电场能而产生过电压。

该过电压与系统电压一起通过二极管对直流电容充电,这时还是相当于三相全桥整流,只不过三相电压幅值更高而已。

重复上述操作,直至直流电压满足要求。

采用这种方法可以做到直流侧电压升压无超调。

直流侧电压达到要求之后,打开所有PWM 脉冲,变换器即并入电网。

他励:就是借助于外部辅助电路,一般为整流器,来为逆变器建立直流侧电压的过程。

充电达到并网的条件即可并网。

逆变器输出电压如何与电网电压实现同步,这是并网变换器的共性问题。

DSP笔记

DSP笔记

R4.3 软件开发语言(1)汇编语言高效指令,代码效率高,底层控制灵活,实时性好;指令集掌握困难,程序可读性,可维护性可移植性差,流程控制困难,开发周期长;适用于运算量大、实时性要求高的场合。

(2)C语言程序可读性、可维护性、可移植性好,修改、升级方便,流程控制容易,开发周期短;某些硬件控制不便,实时性不好;适用于运算量小,实时性要求不高的场合。

(3)汇编与C混合编程。

综合利用两种语言的优越性,用C语言实现流程控制,用汇编语言实现时序或效率要求严格的核心程序。

三者各有所长,技术的发展使得DSP、通用计算机、单片机相互借鉴对方的优点,互相取长补短。

现在,PC机及部分单片机内部都有硬件乘法器;单片机内部也有了通用计算机和DSP内部才有的流水线作业(但规模小些);而DSP内部也有了一定规模的高速缓存。

吸收Intel的嵌入式系统芯片和系统软件的优点。

有的DSP内部集成了高速运行的的DSP内核及控制功能丰富的嵌入式处理器内核。

例如,内部集成有TI公司的C54xCPU内核和ARM公司的ARM7TDMIE内核的DSP,既具有高速的数据处理能力,又有各种类型的外设接口和位控能力,大大拓宽DSP在控制领域的应用。

DSP在注重高速的同时,也在发展自己的低价位控制芯片。

美国Cygnal公司的C8051F020 8位单片机,内部采用流水线结构,大部分指令的完成时间为1或2个时钟周期,峰值处理能力为25MIPS。

片上集成有8通道A/D,两路D/A,两路电压比较器,内置温度传感器、定时器、可编程数字交叉开关和64个通用I/O口、电源监测、看门狗、多种类型的串行总线(两个UART、SPI等)。

DSP工程工程是指编译dsp程序时的结构。

所有第VisualDSP++的开发都出现在工程内,工程文件(.DPJ)存储着程序的编译信息。

工程开发工程开发的步骤一个典型的工程包括模拟、评估、仿真3个阶段。

模拟:在没有真正的硬件支持的条件下也可以编译、编辑和调试DSP程序。

DSP学习笔记1

DSP学习笔记1

DSP学习笔记1——工程的建立作者:鲁春阳QQ:674289525 email:lcydusk@ 说明:此文档只用于学习与交流,切勿用于其它用途,否则后果自负。

1.双击桌面启动图标,打开CCS4开发环境。

2.进入启动界面,等待程序运行。

3.出现工作区存储路径选择的界面,选择自己的工作区目录,点击OK按钮。

4.进入IDE编辑环境,首先要对编译环境进行配置。

5.首先要配置一个Target,建立步骤为:(1)点击Target按钮,选择下拉列表中的New Target Configuration…(2)为Target 配置文件命名后点击Finish。

(3)设置仿真类型,若采用软件仿真,则Connection选择Texas Instruments Simulator,下面的Device选择F283x CPU Cyde Accurate Simulator;若使用硬件仿真则选择相应的调试器型号和CPU Device型号。

选好后点击Save按钮保存Target配置文件。

(4) 保存后可以在,Target Configuration中查看刚才新建的配置文件,并可以双击修改。

当有多个配置文件时,可以在某个配置文件上右键点击,然后选择Set as Default 设为默认配置。

6.工程的建立,点击菜单栏C/C++ Project 一栏,下面开始新建一个工程。

方法1:(1)在下面的空白方框区域,单击鼠标右键,选择New——CCS Project 方法2:(1)选择菜单栏中File——New——CCS Project(2)为新建的工程命名后点击Next按钮。

(3)Project Type 栏下选择C2000,点击Next。

(4)继续点击下一步Next。

(5)进行项目相关的配置。

Output Type 选择Executable(通常不用选择为Static library),Device Variant 栏选择TMS320F28335,Linker Command File 栏选择相应的CMD文件,可以选择automatic ,或者点击Browse 选择自己配置好的CMD文件,点击Next按钮。

DSP控制器及原理课堂笔记重点

DSP控制器及原理课堂笔记重点

第一章绪论(大题20分)1-1 DSP的概念与主要特点一.Dsp概念数字信号处理(器)二。

Dsp主要特点(考10分)1,改进的哈佛结构(早期的)冯诺依曼结构:数据和程序空间合二为一,执行过程:串行哈佛结构:程序和数据空间独立分开,执行过程:并行2,流水线技术程序执行过程:取指(令)译码执行(串行或并行:3-8级深度)3,硬件乘法器32位数字运算4,多处理单元辅助算术单元ARAU 产生操作数地址5,特殊DPS指令6,片内存储器和硬件配置硬件模块:GPIO模块7,JTAG标准测接口1-2DSP芯片的发展及应用一,发展二,分类1,按数据格式:定点DSP,浮点DSP2,按用途:通用型DSP,专用型DSP三,DSP的应用(考10分)1,数字信号处理:滤波,FFT,波形产生2,通信:调制解调,扩频通信,传真3,图像处理:图形变换,压缩,动画4,语音处理:语音编码,语音合成,语音识别5,仪器仪表:频谱分析,函数发生,数据采集6,军事:保密通信,全球定位,跟踪导航7,自动控制:引擎控制,自动驾驶,机器人控制,磁盘控制8,医疗:助听,超声设备,诊断工具,病人监护9,家用电器:高保真音响,音乐合成,音调控制,电视,数字电话1-3 TMS 320系列DSP1-4 性能工作电压3.3v(低功耗1.8v)(1分)第二章F2812的总体结构,最小系统及程序开发2-1 F2812总体结构5,时钟与系统控制单元包括:1,时钟与锁相环PLL 2,看门狗3,低功耗模式控制7,外设中断扩展模块PIE9,事件管理器模块EV(考20或15分)10,模数转换器分辨率12位总16路:2个8路A/D11,串口外设{同步串行外设接口(SPI)1个(考10分){异步串行通信接口(SCI)2个增强型的区域网络控制器(ecan)1个多通道缓冲串行接口(mcb-sp)1个12,通用输入/输出接口(GPIO)第五章F2812的控制单元及中断控制5-1 F2812的时钟时钟和系统控制单元的控制和状态寄存器HISPCP高速时钟定标寄存器LOSPCP低速外设时钟定标寄存器PCLKCR外设时钟控制寄存器LPMCR0低功耗模式控制寄存器0LPMCR1低功耗模式控制寄存器1PLLCR锁相环控制寄存器SCSR系统控制与状态寄存器WDCNTR看门狗计数器寄存器WDKEY看门狗复位密钥寄存器WDCR看门狗控制寄存器5-4 F2812的看门狗模块WDCNTR加法8位在工作时定时复位WDKEY 写入0x55h+0xaah Clk=(512Xoscclk)-》再分频WDPS WDCR D2-D0第六章F2812的定时器,GPIO及外部存储器扩展6-1 CPU定时器的结构和原理3个32位的CPU定时器6-2 F2812的GPIO1,GPIO的通用接口模块GPIOA GPIOB GPIOD GPIOE GPIOF GPIOG专用I/O口(16位)GPIO控制寄存器:GPAMUX控制GPIOA功能选择(MUX多路选择)GPAMUX =1专用外设功能=0通用数字I/O口GPADIR GPIOA 的方向控制寄存器=1输出=0输入只有A,B,D,E 4个口的《-GPAQVAL GPIOA的输入信号质量控制寄存器分频用QUAKPRD 寄存器2,数据寄存器(不受EALLOW保护)以A组为例GPADAT GPIOA的数据寄存器GPASET 的设定寄存器置1GPACLEAR 的清除寄存器清零GPATOGGLE 的触发寄存器取反第七章模数转换器(ADC)F2812的12位AD共16路分成2组A,B组每组8路时钟由HISPCLK 做(PLL旁路)可以再分频单次转换频率25MHZ 输入电压0-3V7-1 ADC模块的特点1,12位内置2个采样保持器S/H-A,A组ADCINA0-ADCINA7S/H-B,B组ADCINB0-ADCINB7共有2种采样模式:顺序采样模式,并序采样模式2,有2个排序器SEQ1和SEQ2,用来确定要转换的通道(和个数)SEQ1 8个状态SEQ2 8个状态双排序并序SEQ1,SEQ2串联形成级联16个状态单排序3,ADC采用HISPCLK做为时钟输入,经分频做ADC时钟频率4,ADC排序器有2种工作模式:启动/停止连续模式5,ADC启动:S/W软件启动触发EVA EVB启动触发外部引脚GPIO/XIN T2-ADCSPC6,ADC 具有转换完成中断请求机制每个序列转换完成后向CPU中清中断ADCTRL1 ADC控制寄存器1ADCMAXCONV ADC最大转换通道寄存器ADCCHSELSEQ1 ADC通道选择排序控制器寄存器1ADCASEQSR ADC自动排序状态寄存器ADCRESULT0 ADC结果寄存器0ADCST ADC状态寄存器8-2 通用定时器GPTX (X-1,2,3,4)每个GPTX包括:1,1个可逆计数器(可加可减)2,比较寄存器(带影子寄存器)-TxCMPR 可读写3,周期寄存器TxPR(带影子寄存器)可读写4,控制寄存器TxCON 可读写5,可选择内部或者外部时钟输入6,每个T,包括上溢/下溢中断,周期中断,比较中断通用定时器计数模式:1,停止/保持2,连续增计数模式不对称波形3,定向增/减计数模式6-1 寄存器的C语音访问(10分)SCICCR 串行通讯接口的通讯控制寄存器SCICTLI 串行通讯控制寄存器1SCIHBAUD baud波特SCILBAUDSCIRXBUF BUF缓冲寄存器SCITXBUF TX发送RX接收位域定义Stnllt bs 11定义位域bs #9#事件管理器模块(EV):TI整个2000系列DSP的一个{int a:8; 重要应用是进行电机的控制或者开关电源的控制,Int b:2; 因此事件管理器模块是2000系列DSP最有特色的外Int c:6;}; 设。

DSP读书笔记

DSP读书笔记
二 论文题目:基于 DSP 的指纹识别系统设计。 作者:熊巍,李家坤。 长江工程职业技术学院,第 27 卷,第 4 期,2010 年 12 月。 摘要: 指纹识别技术是目前最成熟的生物识别技术,已经广泛应用于生活的各种场合。基于 DSP 的指纹识别平台是目前最经济、最高效的识别平台之一。本文以一对一的验证系统为模型, 研究和设计了基于 DSP 的指纹识别系统。 关键词: DSP;FPS200;指纹采集;指纹识别;硬件设计。 问题提出的背景:
相敏检波器的输出信号经过电平提升满足dspadc模块的采用电压后直接被采样到dsp内部利用dsp的高速处理数据能力实现低通滤波这样一方面通过数字低通滤波滤掉相敏检波器输出信号中的和频信号另一方面整个瓦斯信号通过数字低通滤波再过滤一遍实现整个系统更稳定灵敏度更高
范元伟 08128078 0811 电子信息工程 DSP 读书笔记 一 论文题目:基于 DSP 正弦信号发生器设计。 作者:廖柏林,王星胜,林坤,陈旭伟,韩怀梅。 2011 年第 24 卷第 2 期,2011 年 2 月 15 日。 摘要: 提出了一种基于 TMS320C5402 实现正弦信号发生器的设计原理与方法,介绍了所设计的正弦 信号发生器。硬件电路结构和软件程序流程图。结合 DSP 硬件特性,通过使用泰勒级数展开 法得到设定参数的正弦波形输出,达到设计目的。该信号发生器弥补了通常信号发生器模式 固定,波形不可编程的缺点,其具有实时性强,波形精度高,可方便调节频率和幅度、稳定 性好等优点。 关键词: 数字信号处理器;信号发生器;多通道缓冲串行口;独立键盘。 问题提出的背景: 随着计算机技术的飞速发展,对信号发生器波形的要求越来越高。目前,常用信号发生器大 部分是由模拟电路构成,当这种模拟信号发生器用于低频输出时,由于需要较大的 RC 值, 导致参数准确度难以保证,且造成体积和功耗偏大。 解决方法: 数字式波形发生器,因其输出幅值稳定、输出频率连续可调的优点,已逐渐取代了模拟电路 信号发生器。由于其运算速度高,系统集成度强的优势,可以设计基于 DSP 的正弦信号发生 器,该发生器实时性强、可扩展性好、波形精度高、可调节频率和幅度、稳定性好、用途广 泛,各方面均优于模拟信号发生器和数字信号发生器。 1 硬件:TMS320C5402 芯片, D/A 转换器,独立键盘。其中 DA 转换实现模拟输出和变频, 独立键盘实现了人机交互。 优点:结构简单,速度快,精度高,独立键盘采用中断,实时性好。 缺点:缺少显示模块,不利于人机交互;独立键盘按键太少,调节不方便,当增加键盘个数 时,又需要扩展中断。 2 软件: 正弦波发生原理:利用泰勒级数将 sinx 或 cosx 展开。 调幅方法:略 变频方法:编程控制向 DA 送值的周期(DA 采样周期)。

dsp基础学习总结笔记

dsp基础学习总结笔记

dsp基础学习总结笔记1、cj431电压基准芯⽚,2.5v2、电平标准3、驱动器74HC245(为增强PWM的驱动负载能⼒)4、增加输⼊端的抗⼲扰能⼒:在芯⽚的输⼊端加上拉电阻加电源或者下拉电阻接地,没有⽤到的采样端⼝尽量不要悬空。

5、D/A电路⽅案通⽤扩展语⾔GEL和c相似,但是有所不同。

GEL语⾔是C语⾔的⼀个⼦集。

与c语⾔不同的是gel不需要指定函数返回值的类型。

Gel中的while语句和c中的while语句相同,gel不⽀持标准c的break和continue语句6、⼀个完整的dsp⼯程包括头⽂件(.h),库⽂件(.lib),源⽂件(.c),以及配置⽂件.Cmd使⽤关键字MENUITEM可以在gel菜单下选择⽤户⾃定义的菜单项,然后⽤hotmenu、dialog或slider等关键字,在这个新的下拉菜单中添加新的菜单项。

7、关于添加⽂件遇到的问题8、变量查找:edit→find:Ctrl+f9、调试时,添加断点的快捷⽅法如下点击图上的⼩⼿即可10、单步调试第⼀个的意思是单击⼀步⾛⼀步,第⼆个的意思是指在单步运⾏时遇到⼦函数不进⼊⼦函数内部进⾏⽽是把它当成⼀步来执⾏,第三个的意思是当执⾏到⼦函数内部时使⽤这个按钮就可以执⾏完剩下的部分返回上⼀层函数。

如果想在⼀个窗⼝内同时看到c和汇编,则有操作View→mixed source/asm 11、观察变量右击变量→add to watch window 可以得到变量的值、类型、地址等。

12、位域定义、结构体以及共同体的知识结构体先定义再声明Union SCIFFCT_REG {Uint16 all;Struct SCIFFCT_BITS bit;};//---------------------------------------------------------------------------// SCI Register File://Struct SCI_REGS {Union SCICCR_REG SCICCR; // Communications control register Union SCICTL1_REG SCICTL1; // Control register 1Uint16 SCIHBAUD; // Baud rate (high) registerUint16 SCILBAUD; // Baud rate (low) registerUnion SCICTL2_REG SCICTL2; // Control register 2Union SCIRXST_REG SCIRXST; // Receive status registerUint16 SCIRXEMU; // Receive emulation buffer registerUnion SCIRXBUF_REG SCIRXBUF; // Receive data bufferUint16 rsvd1; // reservedUint16 SCITXBUF; // Transmit data bufferUnion SCIFFTX_REG SCIFFTX; // FIFO transmit registerUnion SCIFFRX_REG SCIFFRX; // FIFO receive registerUnion SCIFFCT_REG SCIFFCT; // FIFO control registerUint16 rsvd2; // reservedUint16 rsvd3; // reservedUnion SCIPRI_REG SCIPRI; // FIFO Priority control};//---------------------------------------------------------------------------// SCI External References & Function Declarations://Extern volatile struct SCI_REGS SciaRegs;Extern volatile struct SCI_REGS ScibRegs;由于scihbaud和scilbaud定义时为unit16型的,所以不能⽤.all或者.bit 的⽅式来访问,只能直接给寄存器整体进⾏赋值。

DSP学习笔记

DSP学习笔记

新手的DSP学习笔记本人也是几天前才开始打算接触dsp的,对八位单片机入门了之后就对32位的dsp好奇了,现把本人的dsp2407学习笔记献上,望跟我一样的新手一起交流,也希望高手们能给点指导!现在先把第一章的东西写出来吧,交流一下。

(现在我的教材也就是网上的一些电子文档,哈工大的讲义,图书馆暑假不开,所以还没有很好的教材),希望各位能推荐一下,小弟感激了第一章虽然真正的知识不多,但看完还是很兴奋的,马上就要接触到很前沿的东西了,真的很激动啊!现在把知识梳理一下吧:一 dsp的定义,基本结构(弄清楚哈佛结构和冯诺伊曼不同),流水线的原理,dsp的特殊的 地方(乘加),以及它的功能,适用范围。

(相信这些看了一遍书是肯定没问题了)二 现在说说它的分类(主要分为三大系列):1.2000系列,主要用于控制(小弟就是自动化专业的,所以应该对我是最重要的系列吧!)2.5000系列,主要用于通信3.6000系列,主要用于图象处理(要很高的运算速度才行啊)接下来才是真正的开始了三 该看它的片内外设及存储器等资源:(有些模块不懂事正常的,要是懂了后面不就没东西学了嘛)1.A/D转换器2.很多I/O脚3.PLL时钟模块4.看门狗定时器模块5.串行通信和外设接口SCI,SPI6.两个事件管理器7.8个16位PWM通道(我是看不出哪里有这么多)8.5个外部中断(下一章一定会让你懂的)9.CAN 2.0B模块(不认识它??)10.JTEG接口.11.片内存储器:32k闪存,2.5k字RAM(觉得很多东西吧,确实比单片机的东西多多了,所以功能才会这么强大啊)四 看到了DSP的144个引脚吗,现在看得懂几个就几个吧五 1.DSP的存储器映射分为:flash映射,存储器映射,片外映射。

我只知道这么多,现在是不知道到底有什么用处2.对于各个存储器外设的容量大小还是了解一下吧六 到核心模块了,了解一下CPU的各个模块吧1.CPU的组成:a.输入定标移位器:调整数据位数。

DSP自我笔记

DSP自我笔记

4.4.3、汇编伪指令
定义段的伪指令 初始化常熟的伪指令:.byte、.char、.int、.short、.word、
4.5.4 、MEMORY 命令
MEMORY 命令就是用来规定目标存储器的模型。 语法: MEMORY { PAGE0: name 1[(attr)]: origin=constant,length=constanst; PAGE1: name n[(attr)]: origin=constant,length=constanst; } 通常 PAGE0 定为程序存储器,PAGE1 定为数据存储器
4.5.5、SECTIONS 命令
SECTIONS 命令任务如下: 说明如何将输入段组合成输出段; 在可执行程序中定义输出端; 规定输出段在存储器中存放的位置; 允许重新命名输出段 语法: SECTIONS { name:[property,property,property,…..] name:[property,property,property,…..] name:[property,property,property,…..] }
3.2、TMS320C54X 指令的表示方法 3.2.1、指令系统中的符号
P76 页
3.2.2、指令系统中的运算符
P78 页
3.3、TMS320C54X 的指令系统
数据传送指令、算术运算指令、逻辑运算、程序控制指令、并行操作指 令、重复指令
3.3.1、数据传送指令
包括:装载指令、存储指令、混合装存、条件存储
内容过多自己背书去
第四章汇编语言开发工具
4.3、COFF 的一般概念 4.3.1、COFF 文件的基本单元
COFF 文件有三种类型:COFF0、COFF1、COFF2。C54X 采用的是 COFF2 段:在存储器图中占据相邻空间的代码或数据块

DSP笔记

DSP笔记

第一章 绪论1、哈佛结构:采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和独立访问,可对程序进行独立传输,使取指令操作、指令执行操作、数据吞吐并行完成,大大地提高了数据处理能力和指令的执行速度,非常适合于实时的数字数字信号处理。

2、冯。

诺依曼结构:采用单存储空间,即程序和数据公用一个存储空间,使用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时完成的。

当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象。

3、流水线技术每条指令可通过片内多功能单元完成取址、译码、取操作数和执行等多个步骤,实现多条指令的并行执行,从而在不提高系统时钟频率的条件下减少每条指令的执行时间。

4、DSP 的分类1)、按基础特性分类:静态DSP 芯片和一致性DSP 芯片2)、按用途分:通用型芯片和专用型芯片3)、按数据格式分(即按精度或动态范围):定点DSP 和浮点DSP (大多数定点DSP 芯片都采用16bit 定点运算,只有少数DSP 芯片为24bit 定点运算)5、DSP 系统的构成抗混叠滤波器、数据采集A/D 转换器、数字信号处理器DSP 、D/A 转换器和低通滤波器等6、DSP 系统的处理过程1)将输入信号x (t )进行抗混叠滤波,滤掉高于折叠频率的分量,以防止信号频谱的混叠。

2)经采样和A/D 转换器,将滤波后的信号转换为数字信号x (n )3)数字信号处理器对x (n )进行处理,得到数字信号y (n )4)经D/A 转换器,将y (n )转换成模拟信号5)经低通滤波器,滤除高频分量,得到平滑的模拟信号y (t )第二章 TMS320C54x 的硬件结构1、TMS320C54x 的结构是以8组16位总线为核心,8组总线分为1组程序总线、3组数据总线和4组地址总线2、程序总线PB :主要用来传送取自程序存储器的指令代码和立即操作数。

DSP学习总结(共5则)

DSP学习总结(共5则)

DSP学习总结(共5则)第一篇:DSP学习总结DSP学习总结根据一学期以来对DSP这门课程的学习,学到了很多DSP相关的知识。

了解了如何根据实际需求选择DSP芯片,也知道了C54x的汇编和链接过程,还掌握了C54x的寻址方式。

对于老师的授课方法也有一定的见解。

开始学DSP的时候比较着急,因为也感觉什么都不会,不知道从哪里下手。

手上的资料只有书,后来去图书馆看了两本,一本是《DSP原理与开发》,除了有详细的理论说明之外,还会在每个章节之后配上一个例程,缺点就是错误也不少,估计时间太仓促,校对没做好。

另一本书是清华大学出版社的《TMS320C28X系列DSP的CPU与外设》,是从TI的英文的技术手册翻译过来的,分上、下两册,可以作为工具书,很实用,缺点是没有例子。

书看了一两遍,觉得还是一头雾水。

后来有相应的实验开课,慢慢对DSP有点了解了,刚开始都不知道怎么建PROJECT,后来问了同学,然后再看TI的例程,仿照它的程序框架,边看例程,边对着实验指导书,看得主要是如何初始化,需要对每个外设进行哪些寄存器的初始化,寄存器为什么这样设置,程序如何进中断,如何出中断等等。

边看书边做实验,效率会高很多,也就能慢慢理解了。

对于刚学DSP的新手我觉得掌握一些初级知识就差不多了。

第一步:硬件入门。

1.先学习DSP的硬件基础:了解CPU结构、中断、EMIF、HPI、GPIO、SPI、Timer、供电方式、时钟;2.了解DSP互连的存储器:SDRAM、FLASH、FIFO、双口RAM、SDSRAM 等不需深入研究;3.了解CPLD/FPGA的硬件结构、连接原理、VerilogHDL编程语言需深入研究;4.了解DSP Bootloader不需深入研究;5.了解DSP和外部通信的接口:PCI、USB、LAN、UART等,有时间可以看看DM642的VideoPort第二步:工具入门。

1.学习数字电路、模拟电路、电路分析的知识;2.学好一种PCB绘制软件如Protel DXP2006;3.学习信号完整性、学习传输线理论,特性阻抗知识;关于老师上课的方式我认为:1.太多的理论知识枯燥乏味,因为有实验课,我觉得老师可以根据实验要做的内容在课堂上深入讲解,这样在讲述的同时能让同学们认真听,认真记以便于实验课程的顺利完成,比纯理论效果会好点。

DSP学习心得笔记

DSP学习心得笔记

DSP学习心得笔记---------------- 白建成.baijc.icekoor 引言:学习DSP的时间有两个多月了,收获很多新知识,我们要每天都有进步才行,以下内容没有特别的顺序,跟具自己的学习情况写的,如果有不对的地方希望指出来,如果有不懂得也可以问我,大家相互交流很重要,我的一个邮箱:baijc@欢迎联系!建立新工程过程中:问题1:"GPIO_Study.c", line 61: fatal error: could not open source file "DSP280x_Device.h"1 fatal error detected in the compilation of "GPIO_Study.c".解决方法:因为project →build options→compiler→preprocessor中,要包含的头文件的地址没有加进去,你可以找到头文件的地址,然后加进去。

问题2:undefined first referencedsymbol in file--------- ----------------_c_int00 D:\DSPstudy\test3\Debug\DSP280x_CodeStartBranch.objFS$$MPY D:\DSPstudy\test3\Debug\DSP280x_CpuTimers.objFS$$TOL D:\DSPstudy\test3\Debug\DSP280x_CpuTimers.obj>> error: symbol referencing errors - './Debug/test3.out' not built或者下面的问题:undefined first referencedsymbol in file--------- ----------------_c_int00 D:\DSPstudy\GPIO_Study\Debug\DSP280x_CodeStartBranch.obj>> error: symbol referencing errors - './Debug/GPIO_Study.out' not built解决办法都是下面:这个问题是因为没有加在库文件,请在project →build options→linker→libraries 中加入rts2800.lib。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DSP学习笔记引言:学习DSP的时间有两个多月了,收获很多新知识,我们要每天都有进步才行,以下内容没有特别的顺序,跟具自己的学习情况写的,如果有不对的地方希望指出来,如果有不懂得也可以问我,大家相互交流很重要,我的一个邮箱:baijc@欢迎联系!建立新工程过程中:问题1:"GPIO_Study.c", line 61: fatal error: could not open source file "DSP280x_Device.h"1 fatal error detected in the compilation of "GPIO_Study.c".解决方法:因为project →build options→compiler→preprocessor中,要包含的头文件的地址没有加进去,你可以找到头文件的地址,然后加进去。

问题2:undefined first referencedsymbol in file--------- ----------------_c_int00 D:\DSPstudy\test3\Debug\DSP280x_CodeStartBranch.objFS$$MPY D:\DSPstudy\test3\Debug\DSP280x_CpuTimers.objFS$$TOL D:\DSPstudy\test3\Debug\DSP280x_CpuTimers.obj>> error: symbol referencing errors - './Debug/test3.out' not built或者下面的问题:undefined first referencedsymbol in file--------- ----------------_c_int00 D:\DSPstudy\GPIO_Study\Debug\DSP280x_CodeStartBranch.obj>> error: symbol referencing errors - './Debug/GPIO_Study.out' not built解决办法都是下面:这个问题是因为没有加在库文件,请在project →build options→linker→libraries 中加入rts2800.lib。

问题3:>> warning: creating .stack section with default size of 400 (hex) words.Use-stack option to change the default size.>> error: can't allocate .stack, size 00000400 (page 1) in RAMM1 (avail:00000380)>> error: errors in input - ./Debug/GPIO_Study.out not built解决办法:这个问题是关于堆栈存储大小的问题,他是说,创建堆栈段使用与设置400个字,并建议在“堆栈操作”中改变这个与设置。

这时,需要进行如下修改就可通过:project→ build options→Linker→basic,在Stack Size(-stack):填入800或者其他小于1024的数值。

调试程序:在编译完成之后,要来下载程序并进行功能调试。

File→Load Program,在工程文件夹下面的Debug文件夹下,选中**.out文件,点击打开,便开始下载程序了。

将**.out文件下载到目标板上2812的RAM中。

注意,这里是调试,所以将程序下载到RAM。

等到最后您要固化程序的时候,就得下载到FLASH了,因为断电之后,RAM里面所有的数据都会消失。

(Run和Animate的区别,Run是如果遇到断点的话它就停下来了。

而Animate 就算遇到断点时先停止DSP内核,刷新窗口,然后接着继续启动运行,常用来连续刷新变量窗口和生成graph图形等)——知识储备。

添加断点:加上断点的方法很简单,只要在该行代码前双击就行。

双击之后,这行代码前面会出现一个红色圆块。

另外一种添加断点的方法,就是在刚才的编译工具栏上,点一下那个小手图形的按钮,前提是你要把光标移动到想要设置断点的哪一行上。

使用watch window:Watch window的作用是来观察程序运行过程中的各个变量的值。

调用watch window的方法是点击菜单栏的"View ","watch window",这时watch window就会显示在CCS下方的信息区域;选中所要观察的变量,然后右键,在右键菜单中选择add to watch window。

调试代码观察:我们在调试程序的时候经常想让程序从Main函数开使运行,点Debug→Go main。

既能看到源文件中代码的执行情况,又能看到汇编指令的执行情况View→Mixed Source/Asm;关于F2812中用C语言来实现中断的说明1.首先在.cmd中定位系统中断表:MEMORY{PAGE 0 : ......................................PAGE 1 : ......................................PIE_VECT : origin = 0x000D00, length = 0x000100 ......................................}SECTIONS{ ...................................PieVectTable : > PIE_VECT, PAGE = 1 .....................................}2.在C中制定该中断的结构体:#pragma DATA_SECTION(PieVectTable,"PieVectTable");struct PIE_VECT_TABLE PieVectTable;(在DSP28_GlobalVariableDefs.C中初始化)3.用一组常数(按照中断向量的顺序)初始化该名字为PIE_VECT_TABLE的表:typedef interrupt void(*PINT)(void);这里有些一问,一下应该为函数名??// Define Vector Table:struct PIE_VECT_TABLE {// Reset is never fetched from this table.// It will always be fetched from 0x3FFFC0 in either// boot ROM or XINTF Zone 7 depending on the state of// the XMP/MC input signal. On the F2810 it is always// fetched from boot ROM.PINT PIE1_RESERVED;PINT PIE2_RESERVED;PINT PIE3_RESERVED;PINT PIE4_RESERVED;PINT PIE5_RESERVED;PINT PIE6_RESERVED;PINT PIE7_RESERVED;PINT PIE8_RESERVED;PINT PIE9_RESERVED;PINT PIE10_RESERVED;PINT PIE11_RESERVED;PINT PIE12_RESERVED;PINT PIE13_RESERVED;// Non-Peripheral Interrupts:PINT XINT13; // XINT13PINT TINT2; // CPU-Timer2PINT DATALOG; // Datalogging interruptPINT RTOSINT; // RTOS interruptPINT EMUINT; // Emulation interruptPINT XNMI; // Non-maskable interruptPINT ILLEGAL; // Illegal operation TRAPPINT USER0; // User Defined trap 0PINT USER1; // User Defined trap 1PINT USER2; // User Defined trap 2PINT USER3; // User Defined trap 3PINT USER4; // User Defined trap 4PINT USER5; // User Defined trap 5PINT USER6; // User Defined trap 6PINT USER7; // User Defined trap 7PINT USER8; // User Defined trap 8PINT USER9; // User Defined trap 9PINT USER10; // User Defined trap 10PINT USER11; // User Defined trap 11// Group 1 PIE Peripheral Vectors:PINT PDPINTA; // EV-APINT PDPINTB; // EV-BPINT rsvd1_3;PINT XINT1;PINT XINT2;PINT ADCINT; // ADCPINT TINT0; // Timer 0PINT WAKEINT; // WD ..........................// Group 12 PIE Peripheral Vectors:PINT rsvd12_1;PINT rsvd12_2;PINT rsvd12_3;PINT rsvd12_4;PINT rsvd12_5;PINT rsvd12_6;PINT rsvd12_7;PINT rsvd12_8;};然后在使我们在.cmd文件中定义的表有以上属性:extern struct PIE_VECT_TABLE PieVectTable;(在.h文件中)4.初始化该表(在.c文件中)使之能够为主程序所使用:const struct PIE_VECT_TABLE PieVectTableInit = {PIE_RESERVED, // Reserved spacePIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,// Non-Peripheral InterruptsINT13_ISR, // XINT13 or CPU-Timer 1INT14_ISR, // CPU-Timer2DATALOG_ISR, // Datalogging interruptRTOSINT_ISR, // RTOS interruptEMUINT_ISR, // Emulation interruptNMI_ISR, // Non-maskable interruptILLEGAL_ISR, // Illegal operation TRAPUSER0_ISR, // User Defined trap 0USER1_ISR, // User Defined trap 1USER2_ISR, // User Defined trap 2USER3_ISR, // User Defined trap 3USER4_ISR, // User Defined trap 4USER5_ISR, // User Defined trap 5USER6_ISR, // User Defined trap 6USER7_ISR, // User Defined trap 7USER8_ISR, // User Defined trap 8USER9_ISR, // User Defined trap 9USER10_ISR, // User Defined trap 10USER11_ISR, // User Defined trap 11// Group 1 PIE VectorsPDPINTA_ISR, // EV-APDPINTB_ISR, // EV-Brsvd_ISR,XINT1_ISR,XINT2_ISR,ADCINT_ISR, // ADCTINT0_ISR, // Timer 0WAKEINT_ISR, // WD ..........................// Group 12 E Vectorsrsvd_ISR,rsvd_ISR,rsvd_ISR,rsvd_ISR,rsvd_ISR,rsvd_ISR,rsvd_ISR,rsvd_ISR,};//---------------------------------------------------------------------------// InitPieVectTable://---------------------------------------------------------------------------// This function initializes the PIE vector table to a known state. // This function must be executed after boot time.//void InitPieVectTable(void){int16 i;Uint32 *Source = (void *) &PieVectTableInit;Uint32 *Dest = (void *) &PieVectTable;EALLOW;for(i=0; i < 128; i++)*Dest++ = *Source++;EDIS;// Enable the PIE Vector TablePieCtrl.PIECRTL.bit.ENPIE = 1;}5.中断服务程序:让以上的数值指向你所要的服务程序,例如:PieVectTable.TINT2 = &ISRTimer2;那么,ISRTimer2也就成了中断服务程序,×××切记:一定要在主程序的开始先声明该程序:interrupt void ISRTimer2(void);..........................然后按照您的需要编制该程序:interrupt void ISRTimer2(void){CpuTimer2.InterruptCount++;}编程中遇到的问题:1、line 257: warning: last line of file ends without a newline;解决方法:点击出现的问题条,看光标定位在哪里,然后一点点删除,直到把编程的文字删除,最后把删除的写出来,回车就行了,因为回车的格式要在编辑状态哈哈!28016的定时器笔记学过2812的人会知道,2812的定时器和28016的定时器的寄存器很不一样。

相关文档
最新文档