云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 简单例子学习DSP编程和CCS使用

简单例子学习DSP编程和CCS使用

  • 62 次阅读
  • 3 次下载
  • 2026/1/8 6:00:56

MEMORY {

PAGE 0:

IPROG: origin = 0x2000, len = 0x1000 PAGE 1:

IDATA: origin = 0x80, len = 0x1000 }

SECTIONS {

.text: {} > IPROG PAGE 0 .bss: {} > IDATA PAGE 1 }

7. 连接文件本来可以设置许多的参数,但是,这些参数也可以在Project/Options

中设置。在这个窗口中,可以对编译、汇编和连接的过程设置参数,各个参数的意思查阅相关的手册。通常,使用默认参数就可以了。参数设置完成后,就可以执行Debug/build命令。这个命令将依次执行编译、汇编、连接的三个过程,任何一个过程中出现错误,都会在荧幕下方的窗口中显示出来。对于错误,要认真阅读提示信息,从而知道错误出现的位置,并进行相应的改正。

8. 如果Build的过程没有错,将会在工程所在目下出现一个后缀名为.out的文件,

这个文件文件名是在Project/Options中设置产生的。目标板采用MC方式,load刚生成的.out文件,如果提示错误,检查跳线设置。

9. 加载成功,光标出现在程序起始位置,呈黄色。这时,在需要设置断点的地方设

置断点。打开View里面的CPU Register,在新出现的窗口里,可以观察DSP CPU寄存器的各个数据。同样,可以打开View/Memery,选择.data代码段所在的位置,开始地址为0X80,位于data页,在新窗口中,可以观察该地址开始的数据存储区的各个数据。

10. 执行Debug/Run命令,程序开始运行。到断点处停止,加法的运算完成。这时,

可以再次观察CPU Register窗口,红色数字代表数据有变换,注意PC指针的改变。数据窗口中,则注意用于存放运算结果的地址单元的值的变化。 11. 继续执行Run命令,观察乘法的运算结果。

12. 执行Debug中Reset Dsp和Restart命令,光标从新回到程序入口。执行

Debug/StepInto,单步运行程序,再次观察结果。

六、实验报告要求

给出数据空间的定义数据大小和存储位置,记录各个计算结果变化前后的内容,给出连

接文件和汇编程序。

5

实验二 C和ASSEMBLY的混合编程

一、预习内容

C语言的基本指令和编程方法,DSP中断矢量表的内容和中断的执行过程的知识。 二、实验目的

1. 掌握C语言编写源文件的方法。

2. 掌握中断矢量表的使用,理解BOOT LOADER的过程。 3. 掌握定时器中断的使用方法。 4. 学习C和ASSEMBLY的混合编程。

5. 学习CCS中图形观察动态数据的方式。 6. 学习用定时器实现数字振荡器的算法。 三、实验要求

1. 设计一个数字振荡器的实现算法,产生一个2KHZ的正弦信号。 2. 定时器设置为25μS产生一次中断(等效于采样速率40K)。

3. 使用汇编语言编辑一个中断矢量表,而主程序和中断服务程序使用C语言编写。 4. 使用CCS图形观察功能,观察输出正弦信号。 四、实验原理

1、数字振荡器原理

设传递函数为正弦序列sink?T, 其Z变换为:

sink?T?

Cz

z2?Az?B其中,其中A?2cos?T,B??1,C?sin?T,即: sin(k?T)?zsin?T

z2?2zcos?T?1设初始条件为0,求出上式的反Z变换得:

y[k]?Ay[k?1]?By[k?2]?Cx[k?1]

这是一个二阶差分方程,其单位冲击相应为 sink?T。利用单位冲击函数性质知道,仅当k?1的时候,x?k?1?为1,其他情况都为0。当输入为单位冲击时,输出就是我们需要的正弦序列。

y[0]?Ay[?1]?By[?2]?Cx[?1]?0y[1]?Ay[0]?By[?1]?Cx[0]?Cy[2]?Ay[1]?By[0]?Cx[1]?Ay[1]

y[3]?Ay[2]?By[1]?y[n]?Ay[n?1]?By[n?2]可见,k?2后,可以用递推的方法求y[k]。

根据上面的说明,设振荡器频率为2KHz,采样频频率为40KHz,定时器每隔25

6

μS产生一次中断,得到一个y[k]。递归的差分方程系数为:

A?2cos?T?2cos36??1.618034B??1C?sin?T?sin36??0.587785y[1]?C?0.587785y[2]?Ay[1]?0.951056

2.定时器使用

图2-1 定时器组成框图

定时器是一个片内递减计数定时器,可以产生周期的CPU中断,每个CPU时钟周期,定时器的计数值减1。当定时器计数器的值减到0时,产生一个定时器中断TINT。上图是定时器的组成框图。5000系列DSP中,5402和5420有两个定时器,其他型号DSP只有一个。

用户使用三个寄存器来控制定时器,他们是TIM,PRD,TCR。他们地址如下:

地址 0024h 0025h 0026h 寄存器 TIM PRD TCR 名称 Timer register Timer period register Timer control register 表2-1 定时器相关寄存器地址

定时器启动时,PRD的值装入TIM作为初始值,然后在TIM中开始减计数。TCR为16bit的寄存器,包含了定时器的控制和状态比特。具体如下所示:

7

图2-2 TCR各位说明

具体含义参考相应手册。由于EVM板的CPU时钟是100MHz,

TINT频率?1,(其中tc代表CPU时钟),所以,我们

tc?(TDDR?1)?(PRD?1)设置PRD的值为2499h。

定时器启动的过程主要有四个方面:1)设置PRD;2)打开定时器中断;3)TSS=1,停止定时器;4)设置TCR,包括TDDR,同时TSS=0,TRB=1,启动定时器。

3.DSP中断的使用

在C54X中,用户可以通过中断屏蔽寄存器IMR来决定开放或关闭一个中断请求。图2-3给出C5410的IMR寄存器各个比特定义。

图2-3 IMR的结构

其中,HPINT表示HPI接口中断,INT3-INT0位外部引脚中断,TXINT和TRINT位TDM串口中断,BXINT0和BRINT0位BSP串口发送和接收中断,TINT位定时器0中断。在中断屏蔽寄存器中,比特为1便是允许CPU响应对应的中断,0表示禁止。当然要响应中断,ST1寄存器中的INTM还要为0,表示允许所有中断。

当DSP相应中断时,PC指针指向中断向量表中对应中断的地址,进入中断服务程序。中断向量表是C54X存放中断服务程序的一段内存区域,大小为80h。在中断向量表中,每个中断占4个字的空间,一般情况是将一条跳转或者延时跳转指令放在其中。中断向量表的位置首先在连接文件中加以确定,用户必须知道他在出现空间的起始地址,然后通过修改基地址来通知DSP,其基地址由PMST寄存器中的IPTR(15-7bits)决定。 4.C和汇编语言混合编程

前面提过,在同一个工程里面,可以同时存在C语言源文件和汇编语言源文件。C和汇编是编辑源文件的两种基本语言,各自有自己的优点和缺点。对于C语言,他的优点在于编程方便,缺点则是效率不高;汇编语言的编程效率很高,但是使用起来又很不方便。通常,混合使用,利用各自的优点,避免缺点。主程序我们采用C语言,而关键代码,特别是一些占用CPU较多的代码,我们使用汇编语言来编辑。

实验中,我们把中断矢量表作为一个汇编语言代码段,使用单独的一个汇编文件来生成。这个汇编文件有自己的段的定义,通过连接文件,我们把它放在一个有确定开始地址的程序段里,并记下这个地址。通常,中断矢量表有一个基本格式,我们在编辑他的时候,可以直接参照这个格式:他的长度为80h,每4条字长的指令代表着一个中断产生时需要执行的动作。中断的顺序是系统统一约定的。通常,对于不使用的中断,我们用

8

搜索更多关于: 简单例子学习DSP编程和CCS使用 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

MEMORY { PAGE 0: IPROG: origin = 0x2000, len = 0x1000 PAGE 1: IDATA: origin = 0x80, len = 0x1000 } SECTIONS { .text: {} > IPROG PAGE 0 .bss: {} > IDATA PAGE 1 } 7. 连接文件本来可以设置许多的参数,但是,这些参数也可以在Project/Options中设置。在这个窗口中,可以对编译、汇编和连接的过程设置参数,各个参数的意思查阅相关的手册。通常,使用默认

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com